Skip to main content

Update

Trait Update 

Source
pub trait Update<R: RA> {
    type Choice;

    // Required methods
    fn premise(self, from: R) -> bool;
    fn update(self, from: R, ch: Self::Choice) -> R;
    fn frame_preserving(self, from: R, frame: R) -> Self::Choice;
}

Required Associated Types§

Required Methods§

Source

fn premise(self, from: R) -> bool

Source

fn update(self, from: R, ch: Self::Choice) -> R

requires

self.premise(from)

Source

fn frame_preserving(self, from: R, frame: R) -> Self::Choice

requires

self.premise(from)

requires

from.op(frame) != None

ensures

self.update(from, result).op(frame) != None

Implementations on Foreign Types§

Source§

impl<R1: RA, R2: RA, U1: Update<R1>, U2: Update<R2>> Update<(R1, R2)> for (U1, U2)

Source§

fn premise(self, from: (R1, R2)) -> bool

(open, inline)

self.0.premise(from.0) && self.1.premise(from.1)

Source§

fn update(self, from: (R1, R2), ch: (U1::Choice, U2::Choice)) -> (R1, R2)

(open, inline)

(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

requires

self.premise(from)

requires

from.op(frame) != None

ensures

self.update(from, result).op(frame) != None

Source§

type Choice = (<U1 as Update<R1>>::Choice, <U2 as Update<R2>>::Choice)

Source§

impl<R: RA> Update<R> for ()

Source§

fn premise(self, _: R) -> bool

(open, inline)

true

Source§

fn update(self, from: R, _: ()) -> R

(open, inline)

from

Source§

fn frame_preserving(self, from: R, frame: R)

requires

from.op(frame) != None

ensures

from.op(frame) != None

Source§

type Choice = ()

Implementors§

Source§

impl<R1: RA, R2: RA, U: Update<R1>> Update<Sum<R1, R2>> for SumUpdateL<U>

Source§

type Choice = <U as Update<R1>>::Choice

Source§

impl<R: RA> Update<R> for Snapshot<R>

Source§

impl<R: RA, Choice> Update<R> for Snapshot<Mapping<Choice, R>>

Source§

type Choice = Choice

Source§

impl<R: RA, U: Update<R>> Update<Option<R>> for OptionUpdate<U>

Source§

type Choice = <U as Update<R>>::Choice

Source§

impl<R: RA, U: Update<R>, V: RA> Update<Sum<V, R>> for SumUpdateR<U>

Source§

type Choice = <U as Update<R>>::Choice

Source§

impl<R: UnitRA, U: LocalUpdate<R>> Update<View<AuthViewRel<R>>> for AuthUpdate<U>

Source§

impl<R: ViewRel> Update<View<R>> for ViewUpdateInsert<R>

Source§

impl<R: ViewRel> Update<View<R>> for ViewUpdateRemove<R>

Source§

impl<R: ViewRel, Choice> Update<View<R>> for ViewUpdate<R, Choice>

Source§

type Choice = Choice

Source§

impl<T> Update<Excl<T>> for ExclUpdate<T>