pub struct Sender<T: Debug + Send + 'static, C: ChannelSpec> {
tx: C::Sender<Entry<T>>,
mq: TypedParticipation<Entry<T>>,
runtime: DynTimeProvider,
}
Expand description
Sender for a channel that participates in the memory quota system
Returned by ChannelSpec::new_mq
, a method on C
.
See the module-level docs.
Fields§
§tx: C::Sender<Entry<T>>
The inner sink
mq: TypedParticipation<Entry<T>>
Our clone of the Participation
, for memory accounting
runtime: DynTimeProvider
Time provider for getting the data age
Implementations§
Source§impl<T, C> Sender<T, C>
impl<T, C> Sender<T, C>
Sourcepub fn time_provider(&self) -> &DynTimeProvider
pub fn time_provider(&self) -> &DynTimeProvider
Obtain a reference to the Sender
’s DynTimeProvider
(This can sometimes be used to avoid having to keep a separate clone of the time provider.)
Trait Implementations§
Source§impl<T, C> Sink<T> for Sender<T, C>
impl<T, C> Sink<T> for Sender<T, C>
Source§type Error = SendError<<C as ChannelSpec>::SendError>
type Error = SendError<<C as ChannelSpec>::SendError>
The type of value produced by the sink when an error occurs.
Source§fn poll_ready(
self: Pin<&mut Self>,
cx: &mut Context<'_>,
) -> Poll<Result<(), Self::Error>>
fn poll_ready( self: Pin<&mut Self>, cx: &mut Context<'_>, ) -> Poll<Result<(), Self::Error>>
Attempts to prepare the
Sink
to receive a value. Read moreSource§fn start_send(self: Pin<&mut Self>, item: T) -> Result<(), Self::Error>
fn start_send(self: Pin<&mut Self>, item: T) -> Result<(), Self::Error>
Begin the process of sending a value to the sink.
Each call to this function must be preceded by a successful call to
poll_ready
which returned Poll::Ready(Ok(()))
. Read moreSource§impl<T, C> SinkCloseChannel<T> for Sender<T, C>where
T: HasMemoryCost + Debug + Send,
C: ChannelSpec,
C::Sender<Entry<T>>: SinkCloseChannel<Entry<T>>,
impl<T, C> SinkCloseChannel<T> for Sender<T, C>where
T: HasMemoryCost + Debug + Send,
C: ChannelSpec,
C::Sender<Entry<T>>: SinkCloseChannel<Entry<T>>,
Source§fn close_channel(self: Pin<&mut Self>)
fn close_channel(self: Pin<&mut Self>)
Close the channel from the sending end, giving EOF at the receiver Read more
Source§impl<T, C> SinkTrySend<T> for Sender<T, C>where
T: HasMemoryCost + Debug + Send + 'static,
C: ChannelSpec,
C::Sender<Entry<T>>: SinkTrySend<Entry<T>>,
<C::Sender<Entry<T>> as SinkTrySend<Entry<T>>>::Error: Send + Sync,
impl<T, C> SinkTrySend<T> for Sender<T, C>where
T: HasMemoryCost + Debug + Send + 'static,
C: ChannelSpec,
C::Sender<Entry<T>>: SinkTrySend<Entry<T>>,
<C::Sender<Entry<T>> as SinkTrySend<Entry<T>>>::Error: Send + Sync,
Source§type Error = ErasedSinkTrySendError
type Error = ErasedSinkTrySendError
Errors that is not disconnected, or full
Source§fn try_send_or_return(
self: Pin<&mut Self>,
item: T,
) -> Result<(), (<Self as SinkTrySend<T>>::Error, T)>
fn try_send_or_return( self: Pin<&mut Self>, item: T, ) -> Result<(), (<Self as SinkTrySend<T>>::Error, T)>
Try to send a message
msg
Read moreAuto Trait Implementations§
impl<T, C> Freeze for Sender<T, C>
impl<T, C> !RefUnwindSafe for Sender<T, C>
impl<T, C> Send for Sender<T, C>
impl<T, C> Sync for Sender<T, C>
impl<T, C> Unpin for Sender<T, C>
impl<T, C> !UnwindSafe for Sender<T, C>
Blanket Implementations§
Source§impl<T> BorrowMut<T> for Twhere
T: ?Sized,
impl<T> BorrowMut<T> for Twhere
T: ?Sized,
Source§fn borrow_mut(&mut self) -> &mut T
fn borrow_mut(&mut self) -> &mut T
Mutably borrows from an owned value. Read more
Source§impl<T> CloneToUninit for Twhere
T: Clone,
impl<T> CloneToUninit for Twhere
T: Clone,
§impl<T> Instrument for T
impl<T> Instrument for T
§fn instrument(self, span: Span) -> Instrumented<Self> ⓘ
fn instrument(self, span: Span) -> Instrumented<Self> ⓘ
Source§impl<T> IntoEither for T
impl<T> IntoEither for T
Source§fn into_either(self, into_left: bool) -> Either<Self, Self> ⓘ
fn into_either(self, into_left: bool) -> Either<Self, Self> ⓘ
Converts
self
into a Left
variant of Either<Self, Self>
if into_left
is true
.
Converts self
into a Right
variant of Either<Self, Self>
otherwise. Read moreSource§fn into_either_with<F>(self, into_left: F) -> Either<Self, Self> ⓘ
fn into_either_with<F>(self, into_left: F) -> Either<Self, Self> ⓘ
Converts
self
into a Left
variant of Either<Self, Self>
if into_left(&self)
returns true
.
Converts self
into a Right
variant of Either<Self, Self>
otherwise. Read more§impl<T, Item> SinkExt<Item> for T
impl<T, Item> SinkExt<Item> for T
§fn with<U, Fut, F, E>(self, f: F) -> With<Self, Item, U, Fut, F>
fn with<U, Fut, F, E>(self, f: F) -> With<Self, Item, U, Fut, F>
Composes a function in front of the sink. Read more
§fn with_flat_map<U, St, F>(self, f: F) -> WithFlatMap<Self, Item, U, St, F>
fn with_flat_map<U, St, F>(self, f: F) -> WithFlatMap<Self, Item, U, St, F>
Composes a function in front of the sink. Read more
§fn sink_map_err<E, F>(self, f: F) -> SinkMapErr<Self, F>
fn sink_map_err<E, F>(self, f: F) -> SinkMapErr<Self, F>
Transforms the error returned by the sink.
§fn sink_err_into<E>(self) -> SinkErrInto<Self, Item, E>
fn sink_err_into<E>(self) -> SinkErrInto<Self, Item, E>
Map this sink’s error to a different error type using the
Into
trait. Read more§fn buffer(self, capacity: usize) -> Buffer<Self, Item>where
Self: Sized,
fn buffer(self, capacity: usize) -> Buffer<Self, Item>where
Self: Sized,
Adds a fixed-size buffer to the current sink. Read more
§fn flush(&mut self) -> Flush<'_, Self, Item> ⓘwhere
Self: Unpin,
fn flush(&mut self) -> Flush<'_, Self, Item> ⓘwhere
Self: Unpin,
Flush the sink, processing all pending items. Read more
§fn send(&mut self, item: Item) -> Send<'_, Self, Item> ⓘwhere
Self: Unpin,
fn send(&mut self, item: Item) -> Send<'_, Self, Item> ⓘwhere
Self: Unpin,
A future that completes after the given item has been fully processed
into the sink, including flushing. Read more
§fn feed(&mut self, item: Item) -> Feed<'_, Self, Item> ⓘwhere
Self: Unpin,
fn feed(&mut self, item: Item) -> Feed<'_, Self, Item> ⓘwhere
Self: Unpin,
A future that completes after the given item has been received
by the sink. Read more
§fn send_all<'a, St>(&'a mut self, stream: &'a mut St) -> SendAll<'a, Self, St> ⓘ
fn send_all<'a, St>(&'a mut self, stream: &'a mut St) -> SendAll<'a, Self, St> ⓘ
A future that completes after the given stream has been fully processed
into the sink, including flushing. Read more
§fn right_sink<Si1>(self) -> Either<Si1, Self> ⓘ
fn right_sink<Si1>(self) -> Either<Si1, Self> ⓘ
§fn poll_ready_unpin(
&mut self,
cx: &mut Context<'_>,
) -> Poll<Result<(), Self::Error>>where
Self: Unpin,
fn poll_ready_unpin(
&mut self,
cx: &mut Context<'_>,
) -> Poll<Result<(), Self::Error>>where
Self: Unpin,
A convenience method for calling
Sink::poll_ready
on Unpin
sink types.§fn start_send_unpin(&mut self, item: Item) -> Result<(), Self::Error>where
Self: Unpin,
fn start_send_unpin(&mut self, item: Item) -> Result<(), Self::Error>where
Self: Unpin,
A convenience method for calling
Sink::start_send
on Unpin
sink types.§fn poll_flush_unpin(
&mut self,
cx: &mut Context<'_>,
) -> Poll<Result<(), Self::Error>>where
Self: Unpin,
fn poll_flush_unpin(
&mut self,
cx: &mut Context<'_>,
) -> Poll<Result<(), Self::Error>>where
Self: Unpin,
A convenience method for calling
Sink::poll_flush
on Unpin
sink types.§fn poll_close_unpin(
&mut self,
cx: &mut Context<'_>,
) -> Poll<Result<(), Self::Error>>where
Self: Unpin,
fn poll_close_unpin(
&mut self,
cx: &mut Context<'_>,
) -> Poll<Result<(), Self::Error>>where
Self: Unpin,
A convenience method for calling
Sink::poll_close
on Unpin
sink types.