| 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); |
| } |