AbortablePool

Struct AbortablePool 

Source
pub struct AbortablePool<T> { /* private fields */ }
Expand description

An unordered pool of futures that can be individually aborted.

Each future added to the pool returns an Aborter. When the aborter is dropped, the associated future is aborted.

Note: This pool is not thread-safe and should not be used across threads without external synchronization.

Implementations§

Source§

impl<T: Send> AbortablePool<T>

Source

pub fn len(&self) -> usize

Returns the number of futures in the pool.

Source

pub fn is_empty(&self) -> bool

Returns true if the pool is empty.

Source

pub fn push( &mut self, future: impl Future<Output = T> + Send + 'static, ) -> Aborter

Adds a future to the pool and returns an Aborter that can be used to abort it.

The future must be 'static and Send to ensure it can be safely stored and executed. When the returned Aborter is dropped, the future will be aborted.

Source

pub fn next_completed( &mut self, ) -> SelectNextSome<'_, FuturesUnordered<Pin<Box<dyn Future<Output = Result<T, Aborted>> + Send>>>>

Returns a future that resolves to the next future in the pool that resolves.

If the pool is empty, the future will never resolve. Returns Ok(T) for successful completion or Err(Aborted) for aborted futures.

Trait Implementations§

Source§

impl<T: Send> Default for AbortablePool<T>

Source§

fn default() -> Self

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

Auto Trait Implementations§

§

impl<T> !Freeze for AbortablePool<T>

§

impl<T> !RefUnwindSafe for AbortablePool<T>

§

impl<T> Send for AbortablePool<T>

§

impl<T> !Sync for AbortablePool<T>

§

impl<T> Unpin for AbortablePool<T>

§

impl<T> !UnwindSafe for AbortablePool<T>

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> 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, 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.
Source§

impl<V, T> VZip<V> for T
where V: MultiLane<T>,

Source§

fn vzip(self) -> V