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 | |||||
David Tolnay | daaf774 | 2016-10-03 11:11:43 -0700 | [diff] [blame^] | 13 | fn invoke(self, arg: A) -> A { |
14 | arg | ||||
15 | } | ||||
David Tolnay | 5533772 | 2016-09-11 12:58:56 -0700 | [diff] [blame] | 16 | } |