KillSwitch

Struct KillSwitch 

Source
pub struct KillSwitch(/* private fields */);
Expand description

The KillSwitch is used both to signal termination and waiting for termination.

Implementations§

Source§

impl KillSwitch

Source

pub fn new() -> Self

Create a new kill switch object.

Source

pub fn trigger(&self)

Mark killswitch as triggered and signal all waiting tasks that they should terminate.

Source

pub fn wait(&self) -> WaitFuture

Wait for the killswitch to be triggered.

Source

pub fn finalize(&self) -> FinalizedFuture

Return a Future that will return Ready once there are no more waiters waiting on this killswitch to be triggered.

The KillSwitch must be triggered before calling this function, or the returned future will return an error.

Source

pub fn reset(&self)

Reset KillSwitch.

Care should be taken when using this. Generally speaking it should only be used immediately following a KillSwitch::finalize():

use killswitch::KillSwitch;

let ks = KillSwitch::default();
assert_eq!(ks.is_triggered(), false);

// Trigger kill switch
ks.trigger();
assert_eq!(ks.is_triggered(), true);
ks.finalize().await;
ks.reset();

// KillSwitch became untriggered again
assert_eq!(ks.is_triggered(), false);

Applications should prefer to call KillSwitch::finalize_reset() rather than calling finalize() and reset().

Source

pub async fn finalize_reset(&self) -> Result<(), ()>

Finalize and reset KillSwitch.

Returns Err(()) if the KillSwitch wasn’t in triggered state.

Source

pub fn is_triggered(&self) -> bool

Return a boolean indicating whether kill switch has been triggered.

Returns true if kill switch has been triggered. Returns false otherwise.

Trait Implementations§

Source§

impl Clone for KillSwitch

Source§

fn clone(&self) -> KillSwitch

Returns a duplicate of the value. Read more
1.0.0 · Source§

fn clone_from(&mut self, source: &Self)

Performs copy-assignment from source. Read more
Source§

impl Default for KillSwitch

Source§

fn default() -> Self

Returns the “default value” for a type. Read more

Auto Trait Implementations§

Blanket Implementations§

Source§

impl<T> Any for T
where T: 'static + ?Sized,

Source§

fn type_id(&self) -> TypeId

Gets the TypeId of self. Read more
Source§

impl<T> Borrow<T> for T
where T: ?Sized,

Source§

fn borrow(&self) -> &T

Immutably borrows from an owned value. Read more
Source§

impl<T> BorrowMut<T> for T
where T: ?Sized,

Source§

fn borrow_mut(&mut self) -> &mut T

Mutably borrows from an owned value. Read more
Source§

impl<T> CloneToUninit for T
where T: Clone,

Source§

unsafe fn clone_to_uninit(&self, dest: *mut u8)

🔬This is a nightly-only experimental API. (clone_to_uninit)
Performs copy-assignment from self to dest. Read more
Source§

impl<T> From<T> for T

Source§

fn from(t: T) -> T

Returns the argument unchanged.

Source§

impl<T, U> Into<U> for T
where U: From<T>,

Source§

fn into(self) -> U

Calls U::from(self).

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

Source§

impl<T> ToOwned for T
where T: Clone,

Source§

type Owned = T

The resulting type after obtaining ownership.
Source§

fn to_owned(&self) -> T

Creates owned data from borrowed data, usually by cloning. Read more
Source§

fn clone_into(&self, target: &mut T)

Uses borrowed data to replace owned data, usually by cloning. Read more
Source§

impl<T, U> TryFrom<U> for T
where U: Into<T>,

Source§

type Error = Infallible

The type returned in the event of a conversion error.
Source§

fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>

Performs the conversion.
Source§

impl<T, U> TryInto<U> for T
where U: TryFrom<T>,

Source§

type Error = <U as TryFrom<T>>::Error

The type returned in the event of a conversion error.
Source§

fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>

Performs the conversion.