pub struct PAtomicUsize { /* private fields */ }Implementations§
Source§impl PAtomicUsize
impl PAtomicUsize
Sourcepub const exec fn new(i: usize) -> res : (PAtomicUsize, Tracked<PermissionUsize>)
pub const exec fn new(i: usize) -> res : (PAtomicUsize, Tracked<PermissionUsize>)
ensures
equal(
res.1@.view(),
PermissionDataUsize {
patomic: res.0.id(),
value: i,
},
),Sourcepub exec fn load(&self, Tracked(perm): Tracked<&PermissionUsize>) -> ret : usize
pub exec fn load(&self, Tracked(perm): Tracked<&PermissionUsize>) -> ret : usize
requires
equal(self.id(), perm.view().patomic),ensuresequal(perm.view().value, ret),Sourcepub exec fn store(&self, Tracked(perm): Tracked<&mut PermissionUsize>, v: usize)
pub exec fn store(&self, Tracked(perm): Tracked<&mut PermissionUsize>, v: usize)
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 PermissionUsize>,
current: usize,
new: usize,
) -> ret : Result<usize, usize>
pub exec fn compare_exchange( &self, verus_tmp_perm: Tracked<&mut PermissionUsize>, current: usize, new: usize, ) -> ret : Result<usize, usize>
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 PermissionUsize>,
current: usize,
new: usize,
) -> ret : Result<usize, usize>
pub exec fn compare_exchange_weak( &self, verus_tmp_perm: Tracked<&mut PermissionUsize>, current: usize, new: usize, ) -> ret : Result<usize, usize>
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,
verus_tmp_perm: Tracked<&mut PermissionUsize>,
v: usize,
) -> ret : usize
pub exec fn swap( &self, verus_tmp_perm: Tracked<&mut PermissionUsize>, v: usize, ) -> ret : usize
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<PermissionUsize>) -> ret : usize
pub exec fn into_inner(self, Tracked(perm): Tracked<PermissionUsize>) -> ret : usize
requires
equal(self.id(), perm.view().patomic),ensuresequal(perm.view().value, ret),Sourcepub exec fn fetch_add_wrapping(
&self,
verus_tmp_perm: Tracked<&mut PermissionUsize>,
n: usize,
) -> ret : usize
pub exec fn fetch_add_wrapping( &self, verus_tmp_perm: Tracked<&mut PermissionUsize>, n: usize, ) -> ret : usize
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 == usize_specs::wrapping_add(old(perm).view().value, n),Sourcepub exec fn fetch_sub_wrapping(
&self,
verus_tmp_perm: Tracked<&mut PermissionUsize>,
n: usize,
) -> ret : usize
pub exec fn fetch_sub_wrapping( &self, verus_tmp_perm: Tracked<&mut PermissionUsize>, n: usize, ) -> ret : usize
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 == usize_specs::wrapping_sub(old(perm).view().value, n),Sourcepub exec fn fetch_add(
&self,
verus_tmp_perm: Tracked<&mut PermissionUsize>,
n: usize,
) -> ret : usize
pub exec fn fetch_add( &self, verus_tmp_perm: Tracked<&mut PermissionUsize>, n: usize, ) -> ret : usize
requires
equal(self.id(), old(perm).view().patomic),(<usize>::MIN as int) <= old(perm).view().value + n,old(perm).view().value + n <= (<usize>::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,
verus_tmp_perm: Tracked<&mut PermissionUsize>,
n: usize,
) -> ret : usize
pub exec fn fetch_sub( &self, verus_tmp_perm: Tracked<&mut PermissionUsize>, n: usize, ) -> ret : usize
requires
equal(self.id(), old(perm).view().patomic),(<usize>::MIN as int) <= old(perm).view().value - n,old(perm).view().value - n <= <usize>::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,
verus_tmp_perm: Tracked<&mut PermissionUsize>,
n: usize,
) -> ret : usize
pub exec fn fetch_and( &self, verus_tmp_perm: Tracked<&mut PermissionUsize>, n: usize, ) -> ret : usize
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,
verus_tmp_perm: Tracked<&mut PermissionUsize>,
n: usize,
) -> ret : usize
pub exec fn fetch_or( &self, verus_tmp_perm: Tracked<&mut PermissionUsize>, n: usize, ) -> ret : usize
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,
verus_tmp_perm: Tracked<&mut PermissionUsize>,
n: usize,
) -> ret : usize
pub exec fn fetch_xor( &self, verus_tmp_perm: Tracked<&mut PermissionUsize>, n: usize, ) -> ret : usize
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 PermissionUsize>,
n: usize,
) -> ret : usize
pub exec fn fetch_nand( &self, verus_tmp_perm: Tracked<&mut PermissionUsize>, n: usize, ) -> ret : usize
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,
verus_tmp_perm: Tracked<&mut PermissionUsize>,
n: usize,
) -> ret : usize
pub exec fn fetch_max( &self, verus_tmp_perm: Tracked<&mut PermissionUsize>, n: usize, ) -> ret : usize
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,
verus_tmp_perm: Tracked<&mut PermissionUsize>,
n: usize,
) -> ret : usize
pub exec fn fetch_min( &self, verus_tmp_perm: Tracked<&mut PermissionUsize>, n: usize, ) -> ret : usize
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 PAtomicUsize
impl RefUnwindSafe for PAtomicUsize
impl Send for PAtomicUsize
impl Sync for PAtomicUsize
impl Unpin for PAtomicUsize
impl UnsafeUnpin for PAtomicUsize
impl UnwindSafe for PAtomicUsize
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() }