//! invoke helper /// Helper trait to allow chaining pub trait Invoke { type Result; fn invoke(self, arg: A) -> Self::Result; } /// Identity chain element pub struct Identity; impl Invoke for Identity { type Result = A; fn invoke(self, arg: A) -> A { arg } }