diff --git a/acme/examples/autodiff.rs b/acme/examples/autodiff.rs index e97bb86a..9513b585 100644 --- a/acme/examples/autodiff.rs +++ b/acme/examples/autodiff.rs @@ -7,7 +7,7 @@ extern crate acme; use acme::prelude::sigmoid; -use acme::{autodiff, partial, show_item, show_streams}; +use acme::{autodiff, show_item, show_streams}; macro_rules! eval { ($var:ident: $ex:expr) => { diff --git a/derive/src/cmp/params/mod.rs b/derive/src/cmp/params/mod.rs index d08b2e64..27244539 100644 --- a/derive/src/cmp/params/mod.rs +++ b/derive/src/cmp/params/mod.rs @@ -16,7 +16,10 @@ pub fn generate_keys(fields: &Fields, name: &Ident) -> TokenStream { fn handle_named_fields(fields: &FieldsNamed, name: &Ident) -> TokenStream { let FieldsNamed { named, .. } = fields; - let varaints = named.iter().cloned().map(| field | { + let fields_str = named.clone().map(|field| { + field.ident.unwrap() + }); + let variants = named.iter().cloned().map(|field | { let ident = field.ident.unwrap(); let variant_ident = format_ident!("{}", capitalize_first(&ident.to_string())); Variant { @@ -26,11 +29,13 @@ fn handle_named_fields(fields: &FieldsNamed, name: &Ident) -> TokenStream { discriminant: None, } }); + + quote! { #[derive(Clone, Copy, Debug, Eq, Hash, Ord, PartialEq, PartialOrd)] pub enum #name { - #(#varaints),* + #(#variants),* } } } \ No newline at end of file diff --git a/derive/src/utils.rs b/derive/src/utils.rs index 8489ed77..5b4961c3 100644 --- a/derive/src/utils.rs +++ b/derive/src/utils.rs @@ -3,7 +3,7 @@ Contrib: FL03 */ - +/// A function for capitalizing the first letter of a string. pub fn capitalize_first(s: &str) -> String { s.chars() .take(1) diff --git a/macros/src/lib.rs b/macros/src/lib.rs index 73d454aa..c10c05d1 100644 --- a/macros/src/lib.rs +++ b/macros/src/lib.rs @@ -27,7 +27,7 @@ pub fn show_streams(attr: TokenStream, item: TokenStream) -> TokenStream { let input = parse_macro_input!(item as syn::ItemFn); println!("attr: \"{:?}\"", &attr); println!("item: \"{:?}\"", &input); - quote! { #input }.into() + (quote! { #input }).into() } #[proc_macro] @@ -38,7 +38,7 @@ pub fn show_item(item: TokenStream) -> TokenStream { println!("Span (start, end): ({:?}, {:?})", span.start(), span.end()); println!("Source File: {:?}", span.unwrap().source_file()); println!("Source Text: {:?}", span.source_text()); - quote! { #expr }.into() + (quote! { #expr }).into() } #[proc_macro_attribute] @@ -47,7 +47,7 @@ pub fn partial(attr: TokenStream, item: TokenStream) -> TokenStream { println!("attr: \"{}\"", attr.to_string()); // let result = ad::handle::item::handle_item(&input); // TokenStream::from(result) - quote! { #input }.into() + (quote! { #input }).into() } #[proc_macro]