Adjusting the Display implementation.
Display will automatically implement the to_string functionality, so the explicit implementation was removed.
This commit is contained in:
parent
8efb6fedff
commit
8b5d5a9c57
@ -83,12 +83,6 @@ macro_rules! c_enum
|
|||||||
$($name::$variant => {stringify!($variant)})*
|
$($name::$variant => {stringify!($variant)})*
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
/// Get a String representation of this variant.
|
|
||||||
pub fn to_string(&self) -> String
|
|
||||||
{
|
|
||||||
String::from(self.to_str())
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
||||||
impl ::std::fmt::Debug for $name
|
impl ::std::fmt::Debug for $name
|
||||||
|
@ -82,49 +82,6 @@ macro_rules! c_flags
|
|||||||
self.bits
|
self.bits
|
||||||
}
|
}
|
||||||
|
|
||||||
/// Turn the flag into a String representation of its self.
|
|
||||||
#[warn(unused_assignments)]
|
|
||||||
pub fn to_string(&self) -> String
|
|
||||||
{
|
|
||||||
let mut first: bool;
|
|
||||||
let mut string: String;
|
|
||||||
|
|
||||||
// Push the left bracket onto the string.
|
|
||||||
string = String::new();
|
|
||||||
string.push_str("{");
|
|
||||||
|
|
||||||
// Handle checking each flag to see if it
|
|
||||||
// is part of this flag.
|
|
||||||
first = true;
|
|
||||||
$(
|
|
||||||
if self.intersects($flag) == true
|
|
||||||
{
|
|
||||||
// If this is not the first flag,
|
|
||||||
// then add an OR symbol.
|
|
||||||
if first == false
|
|
||||||
{
|
|
||||||
string.push_str(" | ");
|
|
||||||
}
|
|
||||||
|
|
||||||
// Push the flags name onto the string.
|
|
||||||
string.push_str(stringify!($flag));
|
|
||||||
first = false;
|
|
||||||
}
|
|
||||||
)+
|
|
||||||
|
|
||||||
// No flags were set.
|
|
||||||
if first == true
|
|
||||||
{
|
|
||||||
// Put a space in the string.
|
|
||||||
string.push_str(" ");
|
|
||||||
}
|
|
||||||
|
|
||||||
// Push the right bracket onto the string
|
|
||||||
// and return it.
|
|
||||||
string.push_str("}");
|
|
||||||
string
|
|
||||||
}
|
|
||||||
|
|
||||||
/// Returns `true` if there are flags common to
|
/// Returns `true` if there are flags common to
|
||||||
/// both `self` and `other`; Otherwise, `false` is returned.
|
/// both `self` and `other`; Otherwise, `false` is returned.
|
||||||
pub fn intersects(&self, other: $name) -> bool
|
pub fn intersects(&self, other: $name) -> bool
|
||||||
@ -217,15 +174,49 @@ macro_rules! c_flags
|
|||||||
{
|
{
|
||||||
fn fmt(&self, f: &mut ::std::fmt::Formatter) -> ::std::fmt::Result
|
fn fmt(&self, f: &mut ::std::fmt::Formatter) -> ::std::fmt::Result
|
||||||
{
|
{
|
||||||
write!(f, "{}", self.to_string())
|
::std::fmt::Display::fmt(self, f)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
impl ::std::fmt::Display for $name
|
impl ::std::fmt::Display for $name
|
||||||
{
|
{
|
||||||
|
#[warn(unused_assignments)]
|
||||||
fn fmt(&self, f: &mut ::std::fmt::Formatter) -> ::std::fmt::Result
|
fn fmt(&self, f: &mut ::std::fmt::Formatter) -> ::std::fmt::Result
|
||||||
{
|
{
|
||||||
write!(f, "{}", self.to_string())
|
let mut first: bool;
|
||||||
|
|
||||||
|
// Push the left bracket onto the string.
|
||||||
|
try!(write!(f, "{}", '{'));
|
||||||
|
|
||||||
|
// Handle checking each flag to see if it
|
||||||
|
// is part of this flag.
|
||||||
|
first = true;
|
||||||
|
$(
|
||||||
|
if self.intersects($flag) == true
|
||||||
|
{
|
||||||
|
// If this is not the first flag,
|
||||||
|
// then add an OR symbol.
|
||||||
|
if first == false
|
||||||
|
{
|
||||||
|
try!(write!(f, " | "));
|
||||||
|
}
|
||||||
|
|
||||||
|
// Push the flags name onto the string.
|
||||||
|
try!(write!(f, "{}", stringify!($flag)));
|
||||||
|
first = false;
|
||||||
|
}
|
||||||
|
)+
|
||||||
|
|
||||||
|
// No flags were set.
|
||||||
|
if first == true
|
||||||
|
{
|
||||||
|
// Put a space in the string.
|
||||||
|
try!(write!(f, " "));
|
||||||
|
}
|
||||||
|
|
||||||
|
// Push the right bracket onto the string
|
||||||
|
// and return it.
|
||||||
|
write!(f, "{}", '}')
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
Loading…
x
Reference in New Issue
Block a user