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

Implementors§

Source§

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

Source§

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

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>