pub struct AtomicI8(/* private fields */);Expand description
Creusot wrapper around std::sync::atomic::AtomicI8.
Implementations§
Source§impl AtomicI8
impl AtomicI8
Sourcepub fn new(
val: i8,
view: Ghost<&mut SyncView>,
) -> (Self, Ghost<Box<Perm<AtomicI8>>>)
pub fn new( val: i8, view: Ghost<&mut SyncView>, ) -> (Self, Ghost<Box<Perm<AtomicI8>>>)
ensures
*result.1.val() == FMap::singleton(result.0.get_timestamp(^view), (val, **view))
ensures
*result.1.ward() == result.0terminates
Sourcepub fn load<F>(&self, f: Ghost<F>) -> i8
pub fn load<F>(&self, f: Ghost<F>) -> i8
Wrapper for std::sync::atomic::AtomicI8::load.
requires
forall<c: &LoadCommitter<$type, Self>> c.ward() == *self ==> f.precondition((c,))
ensures
exists<c: &LoadCommitter<$type, Self>> c.ward() == *self && c.val() == result && f.postcondition_once((c,), ())
Sourcepub fn store<F>(&self, val: i8, f: Ghost<F>)
pub fn store<F>(&self, val: i8, f: Ghost<F>)
Wrapper for std::sync::atomic::AtomicI8::store.
requires
forall<c: &mut StoreCommitter<$type, Self>> !c.shot() ==> c.ward() == *self ==> c.val() == val ==> f.precondition((c,)) && f.postcondition_once((c,), ()) ==> (^c).shot()
ensures
exists<c: &mut StoreCommitter<$type, Self>> !c.shot() && c.ward() == *self && c.val() == val && f.postcondition_once((c,), ())
Trait Implementations§
Source§impl HasTimestamp for AtomicI8
impl HasTimestamp for AtomicI8
Source§fn get_timestamp(self, _: SyncView) -> Timestamp
fn get_timestamp(self, _: SyncView) -> Timestamp
logic(opaque) ⚠
Source§fn get_timestamp_monotonic(self, x: SyncView, y: SyncView)
fn get_timestamp_monotonic(self, x: SyncView, y: SyncView)
logic(law) ⚠
requires
x.le_log(y)ensures
self.get_timestamp(x).le_log(self.get_timestamp(y))Auto Trait Implementations§
impl !Freeze for AtomicI8
impl Objective for AtomicI8
impl RefUnwindSafe for AtomicI8
impl Send for AtomicI8
impl Sync for AtomicI8
impl Unpin for AtomicI8
impl UnsafeUnpin for AtomicI8
impl UnwindSafe for AtomicI8
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