pub struct Composed<A, B, C, M1, M2> { /* private fields */ }Expand description
Sequential composition: A -> B followed by B -> C gives A -> C.
Requires Mid: Clone because the intermediate value must be
available both to the second morphism and (optionally) to the
composed invariant check.
Implementations§
Trait Implementations§
Source§impl<A, B, C, M1, M2> ProvenMorphism<A, C> for Composed<A, B, C, M1, M2>where
M1: ProvenMorphism<A, B>,
M2: ProvenMorphism<B, C>,
impl<A, B, C, M1, M2> ProvenMorphism<A, C> for Composed<A, B, C, M1, M2>where
M1: ProvenMorphism<A, B>,
M2: ProvenMorphism<B, C>,
Auto Trait Implementations§
impl<A, B, C, M1, M2> Freeze for Composed<A, B, C, M1, M2>where
M1: Freeze,
M2: Freeze,
PhantomData<fn(&A) -> A>: Freeze,
PhantomData<fn(&B) -> B>: Freeze,
PhantomData<fn(&C) -> C>: Freeze,
impl<A, B, C, M1, M2> RefUnwindSafe for Composed<A, B, C, M1, M2>where
M1: RefUnwindSafe,
M2: RefUnwindSafe,
PhantomData<fn(&A) -> A>: RefUnwindSafe,
PhantomData<fn(&B) -> B>: RefUnwindSafe,
PhantomData<fn(&C) -> C>: RefUnwindSafe,
impl<A, B, C, M1, M2> Send for Composed<A, B, C, M1, M2>where
M1: Send,
M2: Send,
PhantomData<fn(&A) -> A>: Send,
PhantomData<fn(&B) -> B>: Send,
PhantomData<fn(&C) -> C>: Send,
impl<A, B, C, M1, M2> Sync for Composed<A, B, C, M1, M2>where
M1: Sync,
M2: Sync,
PhantomData<fn(&A) -> A>: Sync,
PhantomData<fn(&B) -> B>: Sync,
PhantomData<fn(&C) -> C>: Sync,
impl<A, B, C, M1, M2> Unpin for Composed<A, B, C, M1, M2>where
M1: Unpin,
M2: Unpin,
PhantomData<fn(&A) -> A>: Unpin,
PhantomData<fn(&B) -> B>: Unpin,
PhantomData<fn(&C) -> C>: Unpin,
impl<A, B, C, M1, M2> UnsafeUnpin for Composed<A, B, C, M1, M2>where
M1: UnsafeUnpin,
M2: UnsafeUnpin,
PhantomData<fn(&A) -> A>: UnsafeUnpin,
PhantomData<fn(&B) -> B>: UnsafeUnpin,
PhantomData<fn(&C) -> C>: UnsafeUnpin,
impl<A, B, C, M1, M2> UnwindSafe for Composed<A, B, C, M1, M2>where
M1: UnwindSafe,
M2: UnwindSafe,
PhantomData<fn(&A) -> A>: UnwindSafe,
PhantomData<fn(&B) -> B>: UnwindSafe,
PhantomData<fn(&C) -> C>: UnwindSafe,
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