### What it does Checks for deriving `serde::Deserialize` on a type that has methods using `unsafe`. ### Why is this bad? Deriving `serde::Deserialize` will create a constructor that may violate invariants hold by another constructor. ### Example ``` use serde::Deserialize; #[derive(Deserialize)] pub struct Foo { // .. } impl Foo { pub fn new() -> Self { // setup here .. } pub unsafe fn parts() -> (&str, &str) { // assumes invariants hold } } ```