83c7162d XL |
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 { |
14 | arg |
15 | } |
16 | } |