pub struct SingletonMapFuncAlgebra<T = (), B: Boundedness = Unbounded, OrderPreserving = NotProved, Commutative = NotProved, Idempotent = NotProved>(/* private fields */);Expand description
Algebraic properties for a singleton map function of type T -> U.
Order-preserving means that if the input grows monotonically, the output also grows monotonically.
Implementations§
Source§impl<T, B: Boundedness, O, C, I> SingletonMapFuncAlgebra<T, B, O, C, I>
impl<T, B: Boundedness, O, C, I> SingletonMapFuncAlgebra<T, B, O, C, I>
Sourcepub fn order_preserving(
self,
proof: impl OrderPreservingProof + 'static,
) -> SingletonMapFuncAlgebra<T, B, Proved, C, I>
pub fn order_preserving( self, proof: impl OrderPreservingProof + 'static, ) -> SingletonMapFuncAlgebra<T, B, Proved, C, I>
Marks the function as being order-preserving, with the given proof mechanism.
Sourcepub fn commutative(
self,
proof: impl CommutativeProof<T, B> + 'static,
) -> SingletonMapFuncAlgebra<T, B, O, Proved, I>
pub fn commutative( self, proof: impl CommutativeProof<T, B> + 'static, ) -> SingletonMapFuncAlgebra<T, B, O, Proved, I>
Marks the function as being commutative, with the given proof mechanism.
Sourcepub fn idempotent(
self,
proof: impl IdempotentProof + 'static,
) -> SingletonMapFuncAlgebra<T, B, O, C, Proved>
pub fn idempotent( self, proof: impl IdempotentProof + 'static, ) -> SingletonMapFuncAlgebra<T, B, O, C, Proved>
Marks the function as being idempotent, with the given proof mechanism.
Trait Implementations§
Source§impl<T, B: Boundedness, O, C, I> Property for SingletonMapFuncAlgebra<T, B, O, C, I>
impl<T, B: Boundedness, O, C, I> Property for SingletonMapFuncAlgebra<T, B, O, C, I>
Auto Trait Implementations§
impl<T = (), B = Unbounded, OrderPreserving = NotProved, Commutative = NotProved, Idempotent = NotProved> !RefUnwindSafe for SingletonMapFuncAlgebra<T, B, OrderPreserving, Commutative, Idempotent>
impl<T = (), B = Unbounded, OrderPreserving = NotProved, Commutative = NotProved, Idempotent = NotProved> !Send for SingletonMapFuncAlgebra<T, B, OrderPreserving, Commutative, Idempotent>
impl<T = (), B = Unbounded, OrderPreserving = NotProved, Commutative = NotProved, Idempotent = NotProved> !Sync for SingletonMapFuncAlgebra<T, B, OrderPreserving, Commutative, Idempotent>
impl<T = (), B = Unbounded, OrderPreserving = NotProved, Commutative = NotProved, Idempotent = NotProved> !UnwindSafe for SingletonMapFuncAlgebra<T, B, OrderPreserving, Commutative, Idempotent>
impl<T, B, OrderPreserving, Commutative, Idempotent> Freeze for SingletonMapFuncAlgebra<T, B, OrderPreserving, Commutative, Idempotent>where
Option<Box<dyn CommutativeProof<T, B>>>: Freeze,
PhantomData<(OrderPreserving, Commutative, Idempotent)>: Freeze,
impl<T, B, OrderPreserving, Commutative, Idempotent> Unpin for SingletonMapFuncAlgebra<T, B, OrderPreserving, Commutative, Idempotent>where
Option<Box<dyn CommutativeProof<T, B>>>: Unpin,
PhantomData<(OrderPreserving, Commutative, Idempotent)>: Unpin,
impl<T, B, OrderPreserving, Commutative, Idempotent> UnsafeUnpin for SingletonMapFuncAlgebra<T, B, OrderPreserving, Commutative, Idempotent>where
Option<Box<dyn CommutativeProof<T, B>>>: UnsafeUnpin,
PhantomData<(OrderPreserving, Commutative, Idempotent)>: UnsafeUnpin,
Blanket Implementations§
Source§impl<T> BorrowMut<T> for Twhere
T: ?Sized,
impl<T> BorrowMut<T> for Twhere
T: ?Sized,
Source§fn borrow_mut(&mut self) -> &mut T
fn borrow_mut(&mut self) -> &mut T
Mutably borrows from an owned value. Read more
§impl<T> Instrument for T
impl<T> Instrument for T
§fn instrument(self, span: Span) -> Instrumented<Self> ⓘ
fn instrument(self, span: Span) -> Instrumented<Self> ⓘ
Source§impl<T> IntoEither for T
impl<T> IntoEither for T
Source§fn into_either(self, into_left: bool) -> Either<Self, Self> ⓘ
fn into_either(self, into_left: bool) -> Either<Self, Self> ⓘ
Converts
self into a Left variant of Either<Self, Self>
if into_left is true.
Converts self into a Right variant of Either<Self, Self>
otherwise. Read moreSource§fn into_either_with<F>(self, into_left: F) -> Either<Self, Self> ⓘ
fn into_either_with<F>(self, into_left: F) -> Either<Self, Self> ⓘ
Converts
self into a Left variant of Either<Self, Self>
if into_left(&self) returns true.
Converts self into a Right variant of Either<Self, Self>
otherwise. Read moreCreates a shared type from an unshared type.