Skip to main content

SumLocalUpdateL

Struct SumLocalUpdateL 

Source
pub struct SumLocalUpdateL<U>(pub U);
Expand description

Apply an update to the Left variant of an authority/fragment pair of Sums.

This requires either the authority or the fragment to be in the Left state (the other will be implied as they must always be in the same state).

Tuple Fields§

§0: U

Trait Implementations§

Source§

impl<R1: RA, R2: RA, U: LocalUpdate<R1>> LocalUpdate<Sum<R1, R2>> for SumLocalUpdateL<U>

Source§

fn premise(self, from_auth: Sum<R1, R2>, from_frag: Sum<R1, R2>) -> bool

logic(open, inline)

match (from_auth, from_frag) {
    (Sum::Left(from_auth), Sum::Left(from_frag)) => self.0.premise(from_auth, from_frag),
    (Sum::Right(_), Sum::Right(_)) => false,
    _ => true,
}
Source§

fn update( self, from_auth: Sum<R1, R2>, from_frag: Sum<R1, R2>, ) -> (Sum<R1, R2>, Sum<R1, R2>)

logic(open, inline)

/* Macro-generated */

Source§

fn frame_preserving( self, from_auth: Sum<R1, R2>, from_frag: Sum<R1, R2>, frame: Option<Sum<R1, R2>>, )

logic

requires

self.premise(from_auth, from_frag)

requires

Some(from_frag).op(frame) == Some(Some(from_auth))

ensures

let (to_auth, to_frag) = self.update(from_auth, from_frag);
Some(to_frag).op(frame) == Some(Some(to_auth))

Auto Trait Implementations§

§

impl<U> Freeze for SumLocalUpdateL<U>
where U: Freeze,

§

impl<U> Objective for SumLocalUpdateL<U>
where U: Objective,

§

impl<U> RefUnwindSafe for SumLocalUpdateL<U>
where U: RefUnwindSafe,

§

impl<U> Send for SumLocalUpdateL<U>
where U: Send,

§

impl<U> Sync for SumLocalUpdateL<U>
where U: Sync,

§

impl<U> Unpin for SumLocalUpdateL<U>
where U: Unpin,

§

impl<U> UnsafeUnpin for SumLocalUpdateL<U>
where U: UnsafeUnpin,

§

impl<U> UnwindSafe for SumLocalUpdateL<U>
where U: UnwindSafe,

Blanket Implementations§

Source§

impl<T> Any for T
where T: 'static + ?Sized,

Source§

fn type_id(&self) -> TypeId

Gets the TypeId of self. Read more
Source§

impl<T> Borrow<T> for T
where T: ?Sized,

Source§

fn borrow(&self) -> &T

Immutably borrows from an owned value. Read more
Source§

impl<T> BorrowMut<T> for T
where T: ?Sized,

Source§

fn borrow_mut(&mut self) -> &mut T

Mutably borrows from an owned value. Read more
Source§

impl<T> From<T> for T

Source§

fn from(t: T) -> T

Returns the argument unchanged.

Source§

impl<T, U> Into<U> for T
where U: From<T>,

Source§

fn into(self) -> U

Calls U::from(self).

That is, this conversion is whatever the implementation of From<T> for U chooses to do.

Source§

impl<T, U> TryFrom<U> for T
where U: Into<T>,

Source§

type Error = Infallible

The type returned in the event of a conversion error.
Source§

fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>

Performs the conversion.
Source§

impl<T, U> TryInto<U> for T
where U: TryFrom<T>,

Source§

type Error = <U as TryFrom<T>>::Error

The type returned in the event of a conversion error.
Source§

fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>

Performs the conversion.