//! Test that skipped fields are not read into structs when they appear in input. #[macro_use] extern crate darling; #[macro_use] extern crate syn; #[macro_use] extern crate quote; use darling::FromDeriveInput; #[derive(Debug, PartialEq, Eq, FromDeriveInput)] #[darling(attributes(skip_test))] pub struct Lorem { ipsum: String, #[darling(skip)] dolor: u8, } /// Verify variant-level and field-level skip work correctly for enums. #[derive(Debug, FromMeta)] pub enum Sit { Amet(bool), #[darling(skip)] Foo { hello: bool, }, Bar { hello: bool, #[darling(skip)] world: u8, }, } #[test] fn verify_skipped_field_not_required() { let di = parse_quote! { #[skip_test(ipsum = "Hello")] struct Baz; }; assert_eq!( Lorem::from_derive_input(&di).unwrap(), Lorem { ipsum: "Hello".to_string(), dolor: 0, } ); }