pub struct PAtomicBool { /* private fields */ }Implementations§
Source§impl PAtomicBool
impl PAtomicBool
Sourcepub const exec fn new(i: bool) -> res : (PAtomicBool, Tracked<PermissionBool>)
pub const exec fn new(i: bool) -> res : (PAtomicBool, Tracked<PermissionBool>)
ensures
equal(
res.1@.view(),
PermissionDataBool {
patomic: res.0.id(),
value: i,
},
),Sourcepub exec fn load(&self, Tracked(perm): Tracked<&PermissionBool>) -> ret : bool
pub exec fn load(&self, Tracked(perm): Tracked<&PermissionBool>) -> ret : bool
requires
equal(self.id(), perm.view().patomic),ensuresequal(perm.view().value, ret),Sourcepub exec fn store(&self, Tracked(perm): Tracked<&mut PermissionBool>, v: bool)
pub exec fn store(&self, Tracked(perm): Tracked<&mut PermissionBool>, v: bool)
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 PermissionBool>,
current: bool,
new: bool,
) -> ret : Result<bool, bool>
pub exec fn compare_exchange( &self, verus_tmp_perm: Tracked<&mut PermissionBool>, current: bool, new: bool, ) -> ret : Result<bool, bool>
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 PermissionBool>,
current: bool,
new: bool,
) -> ret : Result<bool, bool>
pub exec fn compare_exchange_weak( &self, verus_tmp_perm: Tracked<&mut PermissionBool>, current: bool, new: bool, ) -> ret : Result<bool, bool>
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 PermissionBool>,
v: bool,
) -> ret : bool
pub exec fn swap( &self, verus_tmp_perm: Tracked<&mut PermissionBool>, v: bool, ) -> ret : bool
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<PermissionBool>) -> ret : bool
pub exec fn into_inner(self, Tracked(perm): Tracked<PermissionBool>) -> ret : bool
requires
equal(self.id(), perm.view().patomic),ensuresequal(perm.view().value, ret),Sourcepub exec fn fetch_and(
&self,
verus_tmp_perm: Tracked<&mut PermissionBool>,
n: bool,
) -> ret : bool
pub exec fn fetch_and( &self, verus_tmp_perm: Tracked<&mut PermissionBool>, n: bool, ) -> ret : bool
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 PermissionBool>,
n: bool,
) -> ret : bool
pub exec fn fetch_or( &self, verus_tmp_perm: Tracked<&mut PermissionBool>, n: bool, ) -> ret : bool
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 PermissionBool>,
n: bool,
) -> ret : bool
pub exec fn fetch_xor( &self, verus_tmp_perm: Tracked<&mut PermissionBool>, n: bool, ) -> ret : bool
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) || (!old(perm).view().value && n)),Sourcepub exec fn fetch_nand(
&self,
verus_tmp_perm: Tracked<&mut PermissionBool>,
n: bool,
) -> ret : bool
pub exec fn fetch_nand( &self, verus_tmp_perm: Tracked<&mut PermissionBool>, n: bool, ) -> ret : bool
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),Auto Trait Implementations§
impl !Freeze for PAtomicBool
impl RefUnwindSafe for PAtomicBool
impl Send for PAtomicBool
impl Sync for PAtomicBool
impl Unpin for PAtomicBool
impl UnsafeUnpin for PAtomicBool
impl UnwindSafe for PAtomicBool
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() }