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§
Sourcefn map_odd<F>(self, odd_fn: F) -> Result<Self, MapOddErr>
fn map_odd<F>(self, odd_fn: F) -> 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.
Sourcefn map_even<F>(self, even_fn: F) -> Result<Self, MapEvenErr>
fn map_even<F>(self, even_fn: F) -> 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.
Sourcefn parity_map<Odd, Even>(
self,
even_fn: Even,
odd_fn: Odd,
) -> Result<Self, Either<MapEvenErr, MapOddErr>>
fn parity_map<Odd, Even>( self, even_fn: Even, odd_fn: Odd, ) -> Result<Self, Either<MapEvenErr, MapOddErr>>
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.