### What it does Checks for manual implementations of the non-exhaustive pattern. ### Why is this bad? Using the #[non_exhaustive] attribute expresses better the intent and allows possible optimizations when applied to enums. ### Example ``` struct S { pub a: i32, pub b: i32, _c: (), } enum E { A, B, #[doc(hidden)] _C, } struct T(pub i32, pub i32, ()); ``` Use instead: ``` #[non_exhaustive] struct S { pub a: i32, pub b: i32, } #[non_exhaustive] enum E { A, B, } #[non_exhaustive] struct T(pub i32, pub i32); ```