pub trait Pipe { type Input; type Output: ToTokens; // Required method fn pipe(&self, input: Self::Input) -> Self::Output; }