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