use aramid::{ CoFn, CoFnMut, CoFnOnce, }; mod call; mod call_mut; mod call_once; struct EvaluateAt(T); impl CoFnOnce for EvaluateAt { fn call_once( self, f: F, ) -> R where F: FnOnce(T) -> R, { f(self.0) } } impl CoFnMut for EvaluateAt { fn call_mut( &mut self, f: F, ) -> R where for<'a> F: FnOnce(&'a mut T) -> R, { f(&mut self.0) } } impl CoFn for EvaluateAt { fn call( &self, f: F, ) -> R where for<'a> F: FnOnce(&'a T) -> R, { f(&self.0) } }