1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
//! invoke helper

/// Helper trait to allow chaining
pub trait Invoke<A> {
	type Result;

	fn invoke(self, arg: A) -> Self::Result;
}

/// Identity chain element
pub struct Identity;

impl<A> Invoke<A> for Identity {
	type Result = A;

	fn invoke(self, arg: A) -> A {
		arg
	}
}