pub struct OpenGuard<T: Protocol>(pub T::Public);Expand description
Guard for NonAtomicInvariant::open.
This contains the public value, that must be unchanged for the borrow. Additionally, the guard asserts that the borrow satisfies its protocol.
Tuple Fields§
§0: T::PublicTrait Implementations§
Auto Trait Implementations§
impl<T> Freeze for OpenGuard<T>
impl<T> Objective for OpenGuard<T>
impl<T> RefUnwindSafe for OpenGuard<T>
impl<T> Send for OpenGuard<T>
impl<T> Sync for OpenGuard<T>
impl<T> Unpin for OpenGuard<T>
impl<T> UnsafeUnpin for OpenGuard<T>
impl<T> UnwindSafe for OpenGuard<T>
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
Source§impl<G, T> Guard<FullBorrow<T>> for Gwhere
G: GuardRef<T>,
impl<G, T> Guard<FullBorrow<T>> for Gwhere
G: GuardRef<T>,
Source§fn guards(self, initial: FullBorrow<T>, current: FullBorrow<T>) -> bool
fn guards(self, initial: FullBorrow<T>, current: FullBorrow<T>) -> bool
logic(open, prophetic, inline)
self.guards_ref(current.cur()) && ^initial == ^current