list_fn/
result.rs

1pub trait ResultFn {
2    type Result;
3    fn result(self) -> Self::Result;
4}
5
6impl ResultFn for () {
7    type Result = ();
8    fn result(self) {}
9}
10
11pub struct Id<T>(T);
12
13impl<T> ResultFn for Id<T> {
14    type Result = T;
15    fn result(self) -> T {
16        self.0
17    }
18}
19
20impl<T> Id<T> {
21    pub fn new(v: T) -> Self {
22        Self(v)
23    }
24}