#![deny(clippy::derive_deserialize_allowing_unknown)] use serde::{Deserialize, Deserializer}; #[derive(Deserialize)] //~ derive_deserialize_allowing_unknown struct Struct { flag: bool, limit: u64, } #[derive(Deserialize)] //~ derive_deserialize_allowing_unknown enum Enum { A(bool), B { limit: u64 }, } // negative tests #[derive(Deserialize)] #[serde(deny_unknown_fields)] struct StructWithDenyUnknownFields { flag: bool, limit: u64, } #[derive(Deserialize)] #[serde(deny_unknown_fields)] enum EnumWithDenyUnknownFields { A(bool), B { limit: u64 }, } #[derive(Deserialize)] #[serde(untagged, deny_unknown_fields)] enum MultipleSerdeAttributes { A(bool), B { limit: u64 }, } #[derive(Deserialize)] struct TupleStruct(u64, bool); #[derive(Deserialize)] #[serde(deny_unknown_fields)] enum EnumWithOnlyTupleVariants { A(bool), B(u64), } struct ManualSerdeImplementation; impl<'de> Deserialize<'de> for ManualSerdeImplementation { fn deserialize(deserializer: D) -> Result where D: Deserializer<'de>, { let () = <() as Deserialize>::deserialize(deserializer)?; Ok(ManualSerdeImplementation) } }