let name = input.ident;
let mut values = Vec::new();
let mut names = Vec::new();
+ let mut names_upper = Vec::new();
let mut fields = Vec::new();
if let syn::Data::Enum(ref data) = input.data {
for v in (&data.variants).into_iter() {
if let Some((_, val)) = &v.discriminant {
let fname = transform_name(&v.ident.to_string());
+ let fnameu = fname.to_ascii_uppercase();
names.push(fname);
+ names_upper.push(fnameu);
fields.push(v.ident.clone());
if let syn::Expr::Lit(l) = val {
if let syn::Lit::Int(li) = &l.lit {
}
}
fn from_str(s: &str) -> Option<Self> {
- match s {
- #( #names => Some(#name::#fields) ,)*
+ match s.to_ascii_uppercase().as_str() {
+ #( #names_upper => Some(#name::#fields) ,)*
_ => None
}
}