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§
Sourcefn frame_preserving(self, from: R, frame: R) -> Self::Choice
fn frame_preserving(self, from: R, frame: R) -> Self::Choice
⚠
requires
self.premise(from)requires
from.op(frame) != Noneensures
self.update(from, result).op(frame) != NoneImplementations on Foreign Types§
Source§impl<R1: RA, R2: RA, U1: Update<R1>, U2: Update<R2>> Update<(R1, R2)> for (U1, U2)
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
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)
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
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) != None