David Tolnay | 5533772 | 2016-09-11 12:58:56 -0700 | [diff] [blame^] | 1 | pub trait Invoke<A> { |
2 | type Result; | ||||
3 | |||||
4 | fn invoke(self, arg: A) -> Self::Result; | ||||
5 | } | ||||
6 | |||||
7 | #[derive(Copy, Clone)] | ||||
8 | pub struct Identity; | ||||
9 | |||||
10 | impl<A> Invoke<A> for Identity { | ||||
11 | type Result = A; | ||||
12 | |||||
13 | fn invoke(self, arg: A) -> A { arg } | ||||
14 | } |