Struct hermit_sync::CallOnce

source ·
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§

Creates a new CallOnce.

Examples
use exclusive_cell::CallOnce;

let call_once = CallOnce::new();

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());

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§

Formats the value using the given formatter. Read more
Returns the “default value” for a type. Read more

Auto Trait Implementations§

Blanket Implementations§

Gets the TypeId of self. Read more
Immutably borrows from an owned value. Read more
Mutably borrows from an owned value. Read more

Returns the argument unchanged.

Calls U::from(self).

That is, this conversion is whatever the implementation of From<T> for U chooses to do.

The type returned in the event of a conversion error.
Performs the conversion.
The type returned in the event of a conversion error.
Performs the conversion.