Source code
Revision control
Copy as Markdown
Other Tools
use darling::{FromDeriveInput, FromMeta};
use syn::parse_quote;
#[derive(Debug, FromMeta, PartialEq, Eq)]
enum Dolor {
Sit,
#[darling(word)]
Amet,
}
impl Default for Dolor {
fn default() -> Self {
Dolor::Sit
}
}
#[derive(FromDeriveInput)]
#[darling(attributes(hello))]
struct Receiver {
#[darling(default)]
example: Dolor,
}
#[test]
fn missing_meta() {
let di = Receiver::from_derive_input(&parse_quote! {
#[hello]
struct Example;
})
.unwrap();
assert_eq!(Dolor::Sit, di.example);
}
#[test]
fn empty_meta() {
let di = Receiver::from_derive_input(&parse_quote! {
#[hello(example)]
struct Example;
})
.unwrap();
assert_eq!(Dolor::Amet, di.example);
}