type-flow-traits 0.1.1

Traits to implment for the type-flow abstractions.
Documentation
pub trait ShiftLeft {
    type ShiftedLeft;
    fn shift_left(self) -> Self::ShiftedLeft;
}

pub trait ShiftRight {
    type ShiftedRight;
    fn shift_right(self) -> Self::ShiftedRight;
}

pub trait SwapStartEnd {
    type Output;
    fn swap(self) -> Self::Output;
}

pub trait Reverse {
    type Output;
    fn reverse(self) -> Self::Output;
}

pub trait StatefulProcessor<T> {
    fn process(&mut self, data: T) -> T;
}
pub trait InPlaceStatefulProcessor<T, E> {
    fn process(&mut self, data: &mut T) -> Result<(), E>;
}
pub trait Processor<T> {
    fn process(data: T) -> T;
}
pub trait InPlaceProcessor<T, E> {
    fn process(data: &mut T)->Result<(), E>;
}

pub trait StatefulTransformProcessor<I, O> {
    fn process(&self, data: I) -> O;
}

pub trait TransformProcessor<I, O> {
    fn process(data: I) -> O;
}