chiark / gitweb /
config, wip macro
authorIan Jackson <ijackson@chiark.greenend.org.uk>
Sat, 24 Jul 2021 11:10:05 +0000 (12:10 +0100)
committerIan Jackson <ijackson@chiark.greenend.org.uk>
Sat, 24 Jul 2021 11:10:05 +0000 (12:10 +0100)
Signed-off-by: Ian Jackson <ijackson@chiark.greenend.org.uk>
macros/macros.rs

index a3741bf235ae3cc869f35f1db8dea76bc168b187..1585a635eba96b452758269e882f65fe71f9d943 100644 (file)
@@ -35,18 +35,19 @@ pub fn resolve(input: proc_macro::TokenStream) -> proc_macro::TokenStream {
 
 //  let mut output = vec![];
   for field in &fields.named {
-//    dbg!(field);
+    dbg!(field);
     let mut skl = quote!{ SKL::Ordinary };
     let mut method = quote!{ ordinary };
     for attr in &field.attrs {
       if attr.tokens.is_empty() {
+        let atspan = attr.path.segments.last().unwrap().ident.span();
         if &attr.path == &parse_quote!{ limited } {
-          skl = quote!{ SKL::Limited };
-          method = quote!{ limited };
+          skl = quote_spanned!{atspan=> SKL::Limited };
+          method = quote_spanned!{atspan=> limited };
         } else if &attr.path == &parse_quote!{ server } {
-          method = quote!{ server };
+          method = quote_spanned!{atspan=> server };
         } else if &attr.path == &parse_quote!{ client } {
-          method = quote!{ client };
+          method = quote_spanned!{atspan=> client };
         }
       } else if &attr.path == &parse_quote!{ special } {
         let meta = match attr.parse_meta().unwrap() {