pub struct ProdUpdate<U1, U2>(pub U1, pub U2);Tuple Fields§
§0: U1§1: U2Trait Implementations§
Source§impl<R1: RA, R2: RA, U1: Update<R1>, U2: Update<R2>> Update<(R1, R2)> for ProdUpdate<U1, U2>
impl<R1: RA, R2: RA, U1: Update<R1>, U2: Update<R2>> Update<(R1, R2)> for ProdUpdate<U1, U2>
Source§fn premise(self, from: (R1, R2)) -> bool
fn premise(self, from: (R1, R2)) -> bool
(open)
self.0.premise(from.0) && self.1.premise(from.1)Source§fn update(self, from: (R1, R2), ch: (U1::Choice, U2::Choice)) -> (R1, R2)
fn update(self, from: (R1, R2), ch: (U1::Choice, U2::Choice)) -> (R1, R2)
(open)
(self.0.update(from.0, ch.0), self.1.update(from.1, ch.1))requires
self.premise(from)Source§fn frame_preserving(self, from: (R1, R2), frame: (R1, R2)) -> Self::Choice
fn frame_preserving(self, from: (R1, R2), frame: (R1, R2)) -> Self::Choice
⚠
requires
self.premise(from)requires
from.op(frame) != Noneensures
self.update(from, result).op(frame) != Nonetype Choice = (<U1 as Update<R1>>::Choice, <U2 as Update<R2>>::Choice)
Auto Trait Implementations§
impl<U1, U2> Freeze for ProdUpdate<U1, U2>
impl<U1, U2> RefUnwindSafe for ProdUpdate<U1, U2>where
U1: RefUnwindSafe,
U2: RefUnwindSafe,
impl<U1, U2> Send for ProdUpdate<U1, U2>
impl<U1, U2> Sync for ProdUpdate<U1, U2>
impl<U1, U2> Unpin for ProdUpdate<U1, U2>
impl<U1, U2> UnwindSafe for ProdUpdate<U1, U2>where
U1: UnwindSafe,
U2: 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