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

The sending half of a bounded channel.

Implementations§

source§

impl<T: 'static> BoundedSender<T>

source

pub fn send( &self, value: T ) -> impl Future<Output = Result<(), SendError<T>>> + '_

Send a single value.

Returns SendError if all receivers are dropped.

source

pub fn send_iter<'a, I>( &'a self, values: I ) -> impl Future<Output = Result<(), SendError<()>>> + 'awhere I: IntoIterator<Item = T> + 'a,

Send multiple values.

If all receivers are dropped, the values are returned in SendError untouched. Either the entire batch is sent or none of it is sent.

source

pub async fn autobatch<F, R>( self, capacity: usize, f: F ) -> Result<R, SendError<()>>where for<'a> F: FnOnce(&'a mut BoundedBatchSender<T>) -> BoxFuture<'a, Result<R, SendError<()>>>,

Automatically accumulate sends into a buffer of size batch and send when full.

The callback’s future must be boxed to work around type system limitations in Rust.

TODO: add a feature that gates this only dependency on futures crate.

Trait Implementations§

source§

impl<T: Debug> Debug for BoundedSender<T>

source§

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

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

impl<T> Drop for BoundedSender<T>

source§

fn drop(&mut self)

Executes the destructor for this type. Read more

Auto Trait Implementations§

§

impl<T> RefUnwindSafe for BoundedSender<T>

§

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

§

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

§

impl<T> Unpin for BoundedSender<T>

§

impl<T> UnwindSafe for BoundedSender<T>

Blanket Implementations§

source§

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

source§

fn type_id(&self) -> TypeId

Gets the TypeId of self. Read more
source§

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

source§

fn borrow(&self) -> &T

Immutably borrows from an owned value. Read more
source§

impl<T> BorrowMut<T> for Twhere 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 Twhere 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 Twhere U: Into<T>,

§

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 Twhere U: TryFrom<T>,

§

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.