ParityMap

Trait ParityMap 

Source
pub trait ParityMap<MapOddErr, MapEvenErr>: Sized + Integer {
    // Provided methods
    fn map_odd<F>(self, odd_fn: F) -> Result<Self, MapOddErr>
       where F: FnOnce(Self) -> Result<Self, MapOddErr> { ... }
    fn map_even<F>(self, even_fn: F) -> Result<Self, MapEvenErr>
       where F: FnOnce(Self) -> Result<Self, MapEvenErr> { ... }
    fn parity_map<Odd, Even>(
        self,
        even_fn: Even,
        odd_fn: Odd,
    ) -> Result<Self, Either<MapEvenErr, MapOddErr>>
       where Odd: FnOnce(Self) -> Result<Self, MapOddErr>,
             Even: FnOnce(Self) -> Result<Self, MapEvenErr> { ... }
}
Expand description

Methods for mapping an integer by its parity

Provided Methods§

Source

fn map_odd<F>(self, odd_fn: F) -> Result<Self, MapOddErr>
where F: FnOnce(Self) -> Result<Self, MapOddErr>,

Applies a function to self if it’s odd.

§Errors

If self is odd, but the function called on it fails, an MapOddError is returned.

Source

fn map_even<F>(self, even_fn: F) -> Result<Self, MapEvenErr>
where F: FnOnce(Self) -> Result<Self, MapEvenErr>,

Applies a function to self if it’s even.

§Errors

If self is even, but the function called on it fails, a MapEvenError is returned.

Source

fn parity_map<Odd, Even>( self, even_fn: Even, odd_fn: Odd, ) -> Result<Self, Either<MapEvenErr, MapOddErr>>
where Odd: FnOnce(Self) -> Result<Self, MapOddErr>, Even: FnOnce(Self) -> Result<Self, MapEvenErr>,

Applies even_fn to self if it’s even, else odd_fn is applied.

§Errors

If self is even, but the function called on it fails, a MapEvenError is returned.

Dyn Compatibility§

This trait is not dyn compatible.

In older versions of Rust, dyn compatibility was called "object safety", so this trait is not object safe.

Implementors§

Source§

impl<T, O, E> ParityMap<O, E> for T
where T: Sized + Integer,