macro_rules! impl_as_ref_from_str {
($name:ident {
$($variant:ident => $str:expr,)+
}
$err:ident::$err_variant:ident
) => { ... };
}Expand description
Generate AsRef and FromStr impls for the given type with the variant / string pairs
specified.
ยงExample
#[macro_use] extern crate serializable_enum;
// your error type
#[derive(Debug)]
enum Error {
Parse(String),
}
// You will need display implemented (you should already have this).
impl ::std::fmt::Display for Error {
fn fmt(&self, f: &mut ::std::fmt::Formatter) -> ::std::fmt::Result {
write!(f, "{:?}", self)
}
}
enum Color {
/// Red
Red,
/// Blue
Blue,
/// Green
Green,
}
impl_as_ref_from_str! {
Color {
Red => "red",
Blue => "blue",
Green => "green",
}
Error::Parse
}