1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26
pub trait Pipe { fn pipe<O, F: FnOnce(Self) -> O>(self, f: F) -> O where Self: Sized, { f(self) } } impl<T> Pipe for T {} pub trait Sniff { /// # Usage /// ``` /// # use chain_tools::Sniff; /// fn sniff<F: FnOnce(&Self)>(self, f: F) -> Self where Self: Sized, { f(&self); self } } impl<T> Sniff for T {}