#Getting value of arg in derive macro
7 messages · Page 1 of 1 (latest)
#[proc_macro_derive(kanu, attributes(kanu))]
pub fn kanu_derive(input: TokenStream) -> TokenStream {
let input = parse_macro_input!(input as DeriveInput);
let name = input.ident;
let data = input.data;
let mut table = String::new();
let mut migrate = false;
for attr in &input.attrs {
if attr.path().is_ident("kanu") {
attr.parse_nested_meta(|meta| {
if meta.path.is_ident("migrate") {
migrate = true
}
if meta.path.is_ident("table") {
// How to get value of this?
// #[kanu(table="User")] This is how it looks like
}
return Ok(());
});
}
}
if let syn::Data::Struct(data) = data {
match &data.fields {
Fields::Named(named) => for field in named.named.clone() {
for attr in field.attrs {
if attr.path().is_ident("kanu") {
attr.parse_nested_meta(|meta| {
Ok(())
});
}
}
},
_ => {}
}
}
// Code
}
Context for parsing a single property in the conventional syntax for structured attributes.
then parse that ParseStream into a LitStr
How to parse it to string then?
A UTF-8 string literal: "foo".