blob: b2243e62b6f5320c6608085e7f7a4e51e8151a9f (
plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
|
use darling::{FromDeriveInput, FromMeta};
use syn::parse_quote;
#[derive(FromDeriveInput)]
#[darling(attributes(hello))]
#[allow(dead_code)]
struct Lorem {
ident: syn::Ident,
ipsum: Ipsum,
}
#[derive(FromMeta)]
struct Ipsum {
#[darling(multiple)]
dolor: Vec<String>,
}
#[test]
fn expand_many() {
let di = parse_quote! {
#[hello(ipsum(dolor = "Hello", dolor = "World"))]
pub struct Baz;
};
let lorem: Lorem = Lorem::from_derive_input(&di).unwrap();
assert_eq!(
lorem.ipsum.dolor,
vec!["Hello".to_string(), "World".to_string()]
);
}
|