use sealed::sealed; #[sealed] pub trait Deserialize<'de>: Sized { fn deserialize(deserializer: D) -> Option; } #[sealed] impl<'de> Deserialize<'de> for () { fn deserialize(_deserializer: D) -> Option { Some(()) } } fn main() {}