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}