diff --git a/src/c_enum.rs b/src/c_enum.rs index 43d3cb7..b1cef18 100644 --- a/src/c_enum.rs +++ b/src/c_enum.rs @@ -83,12 +83,6 @@ macro_rules! c_enum $($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 diff --git a/src/c_flags.rs b/src/c_flags.rs index 38447b6..e36ed20 100644 --- a/src/c_flags.rs +++ b/src/c_flags.rs @@ -82,49 +82,6 @@ macro_rules! c_flags 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 /// both `self` and `other`; Otherwise, `false` is returned. 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 { - write!(f, "{}", self.to_string()) + ::std::fmt::Display::fmt(self, f) } } impl ::std::fmt::Display for $name { + #[warn(unused_assignments)] 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, "{}", '}') } } }