pub struct PAtomicI8 { /* private fields */ }Implementations§
Source§impl PAtomicI8
impl PAtomicI8
Sourcepub const exec fn new(i: i8) -> res : (PAtomicI8, Tracked<PermissionI8>)
pub const exec fn new(i: i8) -> res : (PAtomicI8, Tracked<PermissionI8>)
ensures
equal(
res.1@.view(),
PermissionDataI8 {
patomic: res.0.id(),
value: i,
},
),Sourcepub exec fn load(&self, Tracked(perm): Tracked<&PermissionI8>) -> ret : i8
pub exec fn load(&self, Tracked(perm): Tracked<&PermissionI8>) -> ret : i8
requires
equal(self.id(), perm.view().patomic),ensuresequal(perm.view().value, ret),Sourcepub exec fn store(&self, Tracked(perm): Tracked<&mut PermissionI8>, v: i8)
pub exec fn store(&self, Tracked(perm): Tracked<&mut PermissionI8>, v: i8)
requires
equal(self.id(), old(perm).view().patomic),ensuresequal(perm.view().value, v) && equal(self.id(), perm.view().patomic),Sourcepub exec fn compare_exchange(
&self,
verus_tmp_perm: Tracked<&mut PermissionI8>,
current: i8,
new: i8,
) -> ret : Result<i8, i8>
pub exec fn compare_exchange( &self, verus_tmp_perm: Tracked<&mut PermissionI8>, current: i8, new: i8, ) -> ret : Result<i8, i8>
requires
equal(self.id(), old(perm).view().patomic),ensuresequal(self.id(), perm.view().patomic)
&& match ret {
Result::Ok(r) => {
current == old(perm).view().value && equal(perm.view().value, new)
&& equal(r, old(perm).view().value)
}
Result::Err(r) => {
current != old(perm).view().value
&& equal(perm.view().value, old(perm).view().value)
&& equal(r, old(perm).view().value)
}
},Sourcepub exec fn compare_exchange_weak(
&self,
verus_tmp_perm: Tracked<&mut PermissionI8>,
current: i8,
new: i8,
) -> ret : Result<i8, i8>
pub exec fn compare_exchange_weak( &self, verus_tmp_perm: Tracked<&mut PermissionI8>, current: i8, new: i8, ) -> ret : Result<i8, i8>
requires
equal(self.id(), old(perm).view().patomic),ensuresequal(self.id(), perm.view().patomic)
&& match ret {
Result::Ok(r) => {
current == old(perm).view().value && equal(perm.view().value, new)
&& equal(r, old(perm).view().value)
}
Result::Err(r) => {
equal(perm.view().value, old(perm).view().value)
&& equal(r, old(perm).view().value)
}
},Sourcepub exec fn swap(&self, Tracked(perm): Tracked<&mut PermissionI8>, v: i8) -> ret : i8
pub exec fn swap(&self, Tracked(perm): Tracked<&mut PermissionI8>, v: i8) -> ret : i8
requires
equal(self.id(), old(perm).view().patomic),ensuresequal(perm.view().value, v) && equal(old(perm).view().value, ret)
&& equal(self.id(), perm.view().patomic),Sourcepub exec fn into_inner(self, Tracked(perm): Tracked<PermissionI8>) -> ret : i8
pub exec fn into_inner(self, Tracked(perm): Tracked<PermissionI8>) -> ret : i8
requires
equal(self.id(), perm.view().patomic),ensuresequal(perm.view().value, ret),Sourcepub exec fn fetch_add_wrapping(
&self,
verus_tmp_perm: Tracked<&mut PermissionI8>,
n: i8,
) -> ret : i8
pub exec fn fetch_add_wrapping( &self, verus_tmp_perm: Tracked<&mut PermissionI8>, n: i8, ) -> ret : i8
requires
equal(self.id(), old(perm).view().patomic),ensuresequal(old(perm).view().value, ret),perm.view().patomic == old(perm).view().patomic,perm.view().value as int == i8_specs::wrapping_add(old(perm).view().value, n),Sourcepub exec fn fetch_sub_wrapping(
&self,
verus_tmp_perm: Tracked<&mut PermissionI8>,
n: i8,
) -> ret : i8
pub exec fn fetch_sub_wrapping( &self, verus_tmp_perm: Tracked<&mut PermissionI8>, n: i8, ) -> ret : i8
requires
equal(self.id(), old(perm).view().patomic),ensuresequal(old(perm).view().value, ret),perm.view().patomic == old(perm).view().patomic,perm.view().value as int == i8_specs::wrapping_sub(old(perm).view().value, n),Sourcepub exec fn fetch_add(&self, Tracked(perm): Tracked<&mut PermissionI8>, n: i8) -> ret : i8
pub exec fn fetch_add(&self, Tracked(perm): Tracked<&mut PermissionI8>, n: i8) -> ret : i8
requires
equal(self.id(), old(perm).view().patomic),(<i8>::MIN as int) <= old(perm).view().value + n,old(perm).view().value + n <= (<i8>::MAX as int),ensuresequal(old(perm).view().value, ret),perm.view().patomic == old(perm).view().patomic,perm.view().value == old(perm).view().value + n,Sourcepub exec fn fetch_sub(&self, Tracked(perm): Tracked<&mut PermissionI8>, n: i8) -> ret : i8
pub exec fn fetch_sub(&self, Tracked(perm): Tracked<&mut PermissionI8>, n: i8) -> ret : i8
requires
equal(self.id(), old(perm).view().patomic),(<i8>::MIN as int) <= old(perm).view().value - n,old(perm).view().value - n <= <i8>::MAX as int,ensuresequal(old(perm).view().value, ret),perm.view().patomic == old(perm).view().patomic,perm.view().value == old(perm).view().value - n,Sourcepub exec fn fetch_and(&self, Tracked(perm): Tracked<&mut PermissionI8>, n: i8) -> ret : i8
pub exec fn fetch_and(&self, Tracked(perm): Tracked<&mut PermissionI8>, n: i8) -> ret : i8
requires
equal(self.id(), old(perm).view().patomic),ensuresequal(old(perm).view().value, ret),perm.view().patomic == old(perm).view().patomic,perm.view().value == (old(perm).view().value & n),Sourcepub exec fn fetch_or(&self, Tracked(perm): Tracked<&mut PermissionI8>, n: i8) -> ret : i8
pub exec fn fetch_or(&self, Tracked(perm): Tracked<&mut PermissionI8>, n: i8) -> ret : i8
requires
equal(self.id(), old(perm).view().patomic),ensuresequal(old(perm).view().value, ret),perm.view().patomic == old(perm).view().patomic,perm.view().value == (old(perm).view().value | n),Sourcepub exec fn fetch_xor(&self, Tracked(perm): Tracked<&mut PermissionI8>, n: i8) -> ret : i8
pub exec fn fetch_xor(&self, Tracked(perm): Tracked<&mut PermissionI8>, n: i8) -> ret : i8
requires
equal(self.id(), old(perm).view().patomic),ensuresequal(old(perm).view().value, ret),perm.view().patomic == old(perm).view().patomic,perm.view().value == (old(perm).view().value ^ n),Sourcepub exec fn fetch_nand(
&self,
verus_tmp_perm: Tracked<&mut PermissionI8>,
n: i8,
) -> ret : i8
pub exec fn fetch_nand( &self, verus_tmp_perm: Tracked<&mut PermissionI8>, n: i8, ) -> ret : i8
requires
equal(self.id(), old(perm).view().patomic),ensuresequal(old(perm).view().value, ret),perm.view().patomic == old(perm).view().patomic,perm.view().value == !(old(perm).view().value & n),Sourcepub exec fn fetch_max(&self, Tracked(perm): Tracked<&mut PermissionI8>, n: i8) -> ret : i8
pub exec fn fetch_max(&self, Tracked(perm): Tracked<&mut PermissionI8>, n: i8) -> ret : i8
requires
equal(self.id(), old(perm).view().patomic),ensuresequal(old(perm).view().value, ret),perm.view().patomic == old(perm).view().patomic,perm.view().value
== (if old(perm).view().value > n { old(perm).view().value } else { n }),Sourcepub exec fn fetch_min(&self, Tracked(perm): Tracked<&mut PermissionI8>, n: i8) -> ret : i8
pub exec fn fetch_min(&self, Tracked(perm): Tracked<&mut PermissionI8>, n: i8) -> ret : i8
requires
equal(self.id(), old(perm).view().patomic),ensuresequal(old(perm).view().value, ret),perm.view().patomic == old(perm).view().patomic,perm.view().value
== (if old(perm).view().value < n { old(perm).view().value } else { n }),Auto Trait Implementations§
impl !Freeze for PAtomicI8
impl RefUnwindSafe for PAtomicI8
impl Send for PAtomicI8
impl Sync for PAtomicI8
impl Unpin for PAtomicI8
impl UnsafeUnpin for PAtomicI8
impl UnwindSafe for PAtomicI8
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<T, U> IntoSpecImpl<U> for Twhere
U: From<T>,
impl<T, U> IntoSpecImpl<U> for Twhere
U: From<T>,
Source§impl<T, VERUS_SPEC__A> TryFromSpec<T> for VERUS_SPEC__Awhere
VERUS_SPEC__A: TryFrom<T>,
impl<T, VERUS_SPEC__A> TryFromSpec<T> for VERUS_SPEC__Awhere
VERUS_SPEC__A: TryFrom<T>,
Source§exec fn obeys_try_from_spec() -> bool
exec fn obeys_try_from_spec() -> bool
Source§impl<T, VERUS_SPEC__A> TryIntoSpec<T> for VERUS_SPEC__Awhere
VERUS_SPEC__A: TryInto<T>,
impl<T, VERUS_SPEC__A> TryIntoSpec<T> for VERUS_SPEC__Awhere
VERUS_SPEC__A: TryInto<T>,
Source§exec fn obeys_try_into_spec() -> bool
exec fn obeys_try_into_spec() -> bool
Source§impl<T, U> TryIntoSpecImpl<U> for Twhere
U: TryFrom<T>,
impl<T, U> TryIntoSpecImpl<U> for Twhere
U: TryFrom<T>,
Source§open spec fn obeys_try_into_spec() -> bool
open spec fn obeys_try_into_spec() -> bool
{ <U as TryFromSpec<Self>>::obeys_try_from_spec() }