pub struct CallOnce { /* private fields */ }
Expand description
A synchronization primitive that can only be called once sucessfully.
It behaves similarily to ExclusiveCell<()>
but with a more descriptive API.
§Examples
use exclusive_cell::CallOnce;
static CALL_ONCE: CallOnce = CallOnce::new();
assert!(CALL_ONCE.call_once().is_ok());
assert!(CALL_ONCE.call_once().is_err());
Implementations§
Source§impl CallOnce
impl CallOnce
Sourcepub fn call_once(&self) -> Result<(), CallOnceError>
pub fn call_once(&self) -> Result<(), CallOnceError>
Mark this CallOnce
as called.
Only the first call returns Ok
.
All subsequent calls return Err
.
§Examples
use exclusive_cell::CallOnce;
let call_once = CallOnce::new();
assert!(call_once.call_once().is_ok());
assert!(call_once.call_once().is_err());
Sourcepub fn was_called(&self) -> bool
pub fn was_called(&self) -> bool
Returns true
if call_once
has been called.
§Examples
use exclusive_cell::CallOnce;
let call_once = CallOnce::new();
assert!(!call_once.was_called());
call_once.call_once().unwrap();
assert!(call_once.was_called());
Trait Implementations§
Auto Trait Implementations§
impl !Freeze for CallOnce
impl RefUnwindSafe for CallOnce
impl Send for CallOnce
impl Sync for CallOnce
impl Unpin for CallOnce
impl UnwindSafe for CallOnce
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