pub trait Sniff { // Provided method fn sniff<F: FnOnce(&Self)>(self, f: F) -> Self where Self: Sized { ... } }