pub struct ViewUpdate<R: ViewRel, Choice>(pub Snapshot<Mapping<Choice, (R::Auth, R::Frag)>>);Tuple Fields§
§0: Snapshot<Mapping<Choice, (R::Auth, R::Frag)>>Trait Implementations§
Source§impl<R: ViewRel, Choice> Update<View<R>> for ViewUpdate<R, Choice>
impl<R: ViewRel, Choice> Update<View<R>> for ViewUpdate<R, Choice>
Source§fn premise(self, from: View<R>) -> bool
fn premise(self, from: View<R>) -> bool
(open)
pearlite! { from.auth() != None && (forall<ch: Choice> R::rel(Some(self.0[ch].0), self.0[ch].1)) && forall<frame: R::Frag> match from.frag().op(frame) { Some(ff) => R::rel(from.auth(), ff), None => false } ==> exists<ch: Choice> match self.0[ch].1.op(frame) { Some(ff) => R::rel(Some(self.0[ch].0), ff), None => false } }
Source§fn update(self, from: View<R>, ch: Choice) -> View<R>
fn update(self, from: View<R>, ch: Choice) -> View<R>
(open)
View::new(Some(self.0[ch].0), self.0[ch].1)requires
self.premise(from)Source§fn frame_preserving(self, from: View<R>, frame: View<R>) -> Choice
fn frame_preserving(self, from: View<R>, frame: View<R>) -> Choice
⚠
requires
self.premise(from)requires
from.op(frame) != Noneensures
self.update(from, result).op(frame) != Nonetype Choice = Choice
Auto Trait Implementations§
impl<R, Choice> Freeze for ViewUpdate<R, Choice>
impl<R, Choice> RefUnwindSafe for ViewUpdate<R, Choice>where
Choice: RefUnwindSafe,
<R as ViewRel>::Auth: RefUnwindSafe,
<R as ViewRel>::Frag: RefUnwindSafe,
impl<R, Choice> Send for ViewUpdate<R, Choice>
impl<R, Choice> Sync for ViewUpdate<R, Choice>
impl<R, Choice> Unpin for ViewUpdate<R, Choice>
impl<R, Choice> UnwindSafe for ViewUpdate<R, Choice>
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