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}