Skip to main content

AsyncStreamSender

Struct AsyncStreamSender 

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

Producer handle for a BoundedAsyncStream.

Cheap to clone (Arc under the hood). Drop the last AsyncStreamSender to close the stream; the consumer’s next() will yield None once the buffer is empty.

Implementations§

Source§

impl<T> AsyncStreamSender<T>

Source

pub fn push(&self, item: T)

Push an item; drops the oldest queued item if the buffer is at capacity. This is the lossy default.

Source

pub fn push_or_block(&self, item: T) -> Result<(), T>

Push an item, blocking the current thread if the buffer is full until the consumer drains an item.

Returns Err(item) if the consumer side has been dropped — the item is returned to the caller so it isn’t leaked.

§Errors

Returns Err(item) if the consumer has been dropped.

§Panics

Panics if any mutex is poisoned by another thread panicking while holding it.

Source

pub fn buffered_count(&self) -> usize

Returns the number of items currently buffered.

Source

pub fn is_consumer_gone(&self) -> bool

Returns true if the consumer has been dropped.

Trait Implementations§

Source§

impl<T> Clone for AsyncStreamSender<T>

Source§

fn clone(&self) -> Self

Returns a duplicate of the value. Read more
1.0.0 (const: unstable) · Source§

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

Performs copy-assignment from source. Read more
Source§

impl<T> Debug for AsyncStreamSender<T>

Source§

fn fmt(&self, f: &mut Formatter<'_>) -> Result

Formats the value using the given formatter. Read more
Source§

impl<T> Drop for AsyncStreamSender<T>

Source§

fn drop(&mut self)

Executes the destructor for this type. Read more
Source§

fn pin_drop(self: Pin<&mut Self>)

🔬This is a nightly-only experimental API. (pin_ergonomics)
Execute the destructor for this type, but different to Drop::drop, it requires self to be pinned. Read more

Auto Trait Implementations§

§

impl<T> Freeze for AsyncStreamSender<T>

§

impl<T> RefUnwindSafe for AsyncStreamSender<T>

§

impl<T> Send for AsyncStreamSender<T>
where T: Send,

§

impl<T> Sync for AsyncStreamSender<T>
where T: Send,

§

impl<T> Unpin for AsyncStreamSender<T>

§

impl<T> UnsafeUnpin for AsyncStreamSender<T>

§

impl<T> UnwindSafe for AsyncStreamSender<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> 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.