type_flow_traits/
lib.rs

1
2
3pub trait ShiftLeft {
4    type ShiftedLeft;
5    fn shift_left(self) -> Self::ShiftedLeft;
6}
7
8pub trait ShiftRight {
9    type ShiftedRight;
10    fn shift_right(self) -> Self::ShiftedRight;
11}
12
13pub trait SwapStartEnd {
14    type Output;
15    fn swap(self) -> Self::Output;
16}
17
18pub trait StatefulProcessor<T> {
19    fn process(&mut self, data: T) -> T;
20}
21pub trait InPlaceStatefulProcessor<T, E> {
22    fn process(&mut self, data: &mut T) -> Result<(), E>;
23}
24pub trait Processor<T> {
25    fn process(data: T) -> T;
26}
27pub trait InPlaceProcessor<T, E> {
28    fn process(data: &mut T)->Result<(), E>;
29}
30
31pub trait StatefulTransformProcessor<I, O> {
32    fn process(&self, data: I) -> O;
33}
34
35pub trait TransformProcessor<I, O> {
36    fn process(data: I) -> O;
37}