Struct Sender
pub struct Sender { /* private fields */ }Available on crate feature
std only.Expand description
Sender of the simplex channel.
§Cancellation safety
The Sender is cancel safe. If it is used as the event in a
tokio::select! statement and some other branch
completes first, it is guaranteed that no bytes were sent on this
channel.
§Shutdown
Trait Implementations§
§impl AsyncWrite for Sender
impl AsyncWrite for Sender
§fn poll_write(
self: Pin<&mut Sender>,
cx: &mut Context<'_>,
buf: &[u8],
) -> Poll<Result<usize, Error>>
fn poll_write( self: Pin<&mut Sender>, cx: &mut Context<'_>, buf: &[u8], ) -> Poll<Result<usize, Error>>
§Errors
This method will return IoErrorKind::BrokenPipe
if the channel has been closed.
§fn poll_flush(
self: Pin<&mut Sender>,
_cx: &mut Context<'_>,
) -> Poll<Result<(), Error>>
fn poll_flush( self: Pin<&mut Sender>, _cx: &mut Context<'_>, ) -> Poll<Result<(), Error>>
§Errors
This method will return IoErrorKind::BrokenPipe
if the channel has been closed.
§fn poll_shutdown(
self: Pin<&mut Sender>,
_cx: &mut Context<'_>,
) -> Poll<Result<(), Error>>
fn poll_shutdown( self: Pin<&mut Sender>, _cx: &mut Context<'_>, ) -> Poll<Result<(), Error>>
After returns Poll::Ready, all the following call to
Sender::poll_write and Sender::poll_flush
will return error.
The Receiver can still be used to read remaining data
until all bytes have been consumed.
§fn is_write_vectored(&self) -> bool
fn is_write_vectored(&self) -> bool
Determines if this writer has an efficient
poll_write_vectored
implementation. Read moreAuto Trait Implementations§
impl Freeze for Sender
impl RefUnwindSafe for Sender
impl Send for Sender
impl Sync for Sender
impl Unpin for Sender
impl UnsafeUnpin for Sender
impl UnwindSafe for Sender
Blanket Implementations§
§impl<'a, T, E> AsTaggedExplicit<'a, E> for Twhere
T: 'a,
impl<'a, T, E> AsTaggedExplicit<'a, E> for Twhere
T: 'a,
§impl<'a, T, E> AsTaggedImplicit<'a, E> for Twhere
T: 'a,
impl<'a, T, E> AsTaggedImplicit<'a, E> for Twhere
T: 'a,
§impl<W> AsyncWriteExt for Wwhere
W: AsyncWrite + ?Sized,
impl<W> AsyncWriteExt for Wwhere
W: AsyncWrite + ?Sized,
§fn write<'a>(&'a mut self, src: &'a [u8]) -> Write<'a, Self>where
Self: Unpin,
fn write<'a>(&'a mut self, src: &'a [u8]) -> Write<'a, Self>where
Self: Unpin,
Writes a buffer into this writer, returning how many bytes were
written. Read more
§fn write_vectored<'a, 'b>(
&'a mut self,
bufs: &'a [IoSlice<'b>],
) -> WriteVectored<'a, 'b, Self>where
Self: Unpin,
fn write_vectored<'a, 'b>(
&'a mut self,
bufs: &'a [IoSlice<'b>],
) -> WriteVectored<'a, 'b, Self>where
Self: Unpin,
§fn write_buf<'a, B>(&'a mut self, src: &'a mut B) -> WriteBuf<'a, Self, B>
fn write_buf<'a, B>(&'a mut self, src: &'a mut B) -> WriteBuf<'a, Self, B>
Writes a buffer into this writer, advancing the buffer’s internal
cursor. Read more
§fn write_all_buf<'a, B>(
&'a mut self,
src: &'a mut B,
) -> WriteAllBuf<'a, Self, B>
fn write_all_buf<'a, B>( &'a mut self, src: &'a mut B, ) -> WriteAllBuf<'a, Self, B>
Attempts to write an entire buffer into this writer. Read more
§fn write_all<'a>(&'a mut self, src: &'a [u8]) -> WriteAll<'a, Self>where
Self: Unpin,
fn write_all<'a>(&'a mut self, src: &'a [u8]) -> WriteAll<'a, Self>where
Self: Unpin,
Attempts to write an entire buffer into this writer. Read more
§fn write_u8(&mut self, n: u8) -> WriteU8<&mut Self>where
Self: Unpin,
fn write_u8(&mut self, n: u8) -> WriteU8<&mut Self>where
Self: Unpin,
Writes an unsigned 8-bit integer to the underlying writer. Read more
§fn write_i8(&mut self, n: i8) -> WriteI8<&mut Self>where
Self: Unpin,
fn write_i8(&mut self, n: i8) -> WriteI8<&mut Self>where
Self: Unpin,
Writes a signed 8-bit integer to the underlying writer. Read more
§fn write_u16(&mut self, n: u16) -> WriteU16<&mut Self>where
Self: Unpin,
fn write_u16(&mut self, n: u16) -> WriteU16<&mut Self>where
Self: Unpin,
Writes an unsigned 16-bit integer in big-endian order to the
underlying writer. Read more
§fn write_i16(&mut self, n: i16) -> WriteI16<&mut Self>where
Self: Unpin,
fn write_i16(&mut self, n: i16) -> WriteI16<&mut Self>where
Self: Unpin,
Writes a signed 16-bit integer in big-endian order to the
underlying writer. Read more
§fn write_u32(&mut self, n: u32) -> WriteU32<&mut Self>where
Self: Unpin,
fn write_u32(&mut self, n: u32) -> WriteU32<&mut Self>where
Self: Unpin,
Writes an unsigned 32-bit integer in big-endian order to the
underlying writer. Read more
§fn write_i32(&mut self, n: i32) -> WriteI32<&mut Self>where
Self: Unpin,
fn write_i32(&mut self, n: i32) -> WriteI32<&mut Self>where
Self: Unpin,
Writes a signed 32-bit integer in big-endian order to the
underlying writer. Read more
§fn write_u64(&mut self, n: u64) -> WriteU64<&mut Self>where
Self: Unpin,
fn write_u64(&mut self, n: u64) -> WriteU64<&mut Self>where
Self: Unpin,
Writes an unsigned 64-bit integer in big-endian order to the
underlying writer. Read more
§fn write_i64(&mut self, n: i64) -> WriteI64<&mut Self>where
Self: Unpin,
fn write_i64(&mut self, n: i64) -> WriteI64<&mut Self>where
Self: Unpin,
Writes an signed 64-bit integer in big-endian order to the
underlying writer. Read more
§fn write_u128(&mut self, n: u128) -> WriteU128<&mut Self>where
Self: Unpin,
fn write_u128(&mut self, n: u128) -> WriteU128<&mut Self>where
Self: Unpin,
Writes an unsigned 128-bit integer in big-endian order to the
underlying writer. Read more
§fn write_i128(&mut self, n: i128) -> WriteI128<&mut Self>where
Self: Unpin,
fn write_i128(&mut self, n: i128) -> WriteI128<&mut Self>where
Self: Unpin,
Writes an signed 128-bit integer in big-endian order to the
underlying writer. Read more
§fn write_f32(&mut self, n: f32) -> WriteF32<&mut Self>where
Self: Unpin,
fn write_f32(&mut self, n: f32) -> WriteF32<&mut Self>where
Self: Unpin,
Writes an 32-bit floating point type in big-endian order to the
underlying writer. Read more
§fn write_f64(&mut self, n: f64) -> WriteF64<&mut Self>where
Self: Unpin,
fn write_f64(&mut self, n: f64) -> WriteF64<&mut Self>where
Self: Unpin,
Writes an 64-bit floating point type in big-endian order to the
underlying writer. Read more
§fn write_u16_le(&mut self, n: u16) -> WriteU16Le<&mut Self>where
Self: Unpin,
fn write_u16_le(&mut self, n: u16) -> WriteU16Le<&mut Self>where
Self: Unpin,
Writes an unsigned 16-bit integer in little-endian order to the
underlying writer. Read more
§fn write_i16_le(&mut self, n: i16) -> WriteI16Le<&mut Self>where
Self: Unpin,
fn write_i16_le(&mut self, n: i16) -> WriteI16Le<&mut Self>where
Self: Unpin,
Writes a signed 16-bit integer in little-endian order to the
underlying writer. Read more
§fn write_u32_le(&mut self, n: u32) -> WriteU32Le<&mut Self>where
Self: Unpin,
fn write_u32_le(&mut self, n: u32) -> WriteU32Le<&mut Self>where
Self: Unpin,
Writes an unsigned 32-bit integer in little-endian order to the
underlying writer. Read more
§fn write_i32_le(&mut self, n: i32) -> WriteI32Le<&mut Self>where
Self: Unpin,
fn write_i32_le(&mut self, n: i32) -> WriteI32Le<&mut Self>where
Self: Unpin,
Writes a signed 32-bit integer in little-endian order to the
underlying writer. Read more
§fn write_u64_le(&mut self, n: u64) -> WriteU64Le<&mut Self>where
Self: Unpin,
fn write_u64_le(&mut self, n: u64) -> WriteU64Le<&mut Self>where
Self: Unpin,
Writes an unsigned 64-bit integer in little-endian order to the
underlying writer. Read more
§fn write_i64_le(&mut self, n: i64) -> WriteI64Le<&mut Self>where
Self: Unpin,
fn write_i64_le(&mut self, n: i64) -> WriteI64Le<&mut Self>where
Self: Unpin,
Writes an signed 64-bit integer in little-endian order to the
underlying writer. Read more
§fn write_u128_le(&mut self, n: u128) -> WriteU128Le<&mut Self>where
Self: Unpin,
fn write_u128_le(&mut self, n: u128) -> WriteU128Le<&mut Self>where
Self: Unpin,
Writes an unsigned 128-bit integer in little-endian order to the
underlying writer. Read more
§fn write_i128_le(&mut self, n: i128) -> WriteI128Le<&mut Self>where
Self: Unpin,
fn write_i128_le(&mut self, n: i128) -> WriteI128Le<&mut Self>where
Self: Unpin,
Writes an signed 128-bit integer in little-endian order to the
underlying writer. Read more
§fn write_f32_le(&mut self, n: f32) -> WriteF32Le<&mut Self>where
Self: Unpin,
fn write_f32_le(&mut self, n: f32) -> WriteF32Le<&mut Self>where
Self: Unpin,
Writes an 32-bit floating point type in little-endian order to the
underlying writer. Read more
§fn write_f64_le(&mut self, n: f64) -> WriteF64Le<&mut Self>where
Self: Unpin,
fn write_f64_le(&mut self, n: f64) -> WriteF64Le<&mut Self>where
Self: Unpin,
Writes an 64-bit floating point type in little-endian order to the
underlying writer. Read more
§impl<T> AsyncWriteOwned for T
impl<T> AsyncWriteOwned for T
§fn poll_write_owned<B>(
&mut self,
cx: &mut Context<'_>,
slot: &mut BufSlot<B>,
) -> Poll<Result<usize, Error>>where
B: IoBuf,
fn poll_write_owned<B>(
&mut self,
cx: &mut Context<'_>,
slot: &mut BufSlot<B>,
) -> Poll<Result<usize, Error>>where
B: IoBuf,
The primitive. Poll a write of the initialized bytes
[0, buf_len)
of the buffer in slot, returning the bytes written. The buffer is moved
through the write op (readiness: borrowed-then-restored; completion /
SEND_ZC: moved into the op, slot left InFlight, returned on the NOTIF) and
left back in slot on Ready. The caller advances its own cursor by the
returned count.§fn poll_flush_owned(&mut self, cx: &mut Context<'_>) -> Poll<Result<(), Error>>
fn poll_flush_owned(&mut self, cx: &mut Context<'_>) -> Poll<Result<(), Error>>
Poll a flush of any buffered data to the underlying sink.
§fn poll_shutdown_owned(
&mut self,
cx: &mut Context<'_>,
) -> Poll<Result<(), Error>>
fn poll_shutdown_owned( &mut self, cx: &mut Context<'_>, ) -> Poll<Result<(), Error>>
Poll a shutdown of the write side of this connection.
§fn is_write_vectored_owned(&self) -> bool
fn is_write_vectored_owned(&self) -> bool
Hint whether vectored writes are efficient on this writer (mirrors
[
tokio::io::AsyncWrite::is_write_vectored]), lets a frame encoder pick a
chain threshold. Defaults to false, the blanket-over-tokio impl and thin
adapters forward the underlying writer’s answer.§fn write_owned<B>(
&mut self,
buf: B,
) -> impl Future<Output = (Result<usize, Error>, B)> + Send
fn write_owned<B>( &mut self, buf: B, ) -> impl Future<Output = (Result<usize, Error>, B)> + Send
Derived async convenience over
poll_write_owned:
move buf in, issue one write, hand it back with the bytes written. Not
a second impl: every owned writer gets it for free. Read more§fn flush_owned(&mut self) -> impl Future<Output = Result<(), Error>> + Sendwhere
Self: Send,
fn flush_owned(&mut self) -> impl Future<Output = Result<(), Error>> + Sendwhere
Self: Send,
Derived async flush over
poll_flush_owned.§fn shutdown_owned(&mut self) -> impl Future<Output = Result<(), Error>> + Sendwhere
Self: Send,
fn shutdown_owned(&mut self) -> impl Future<Output = Result<(), Error>> + Sendwhere
Self: Send,
Derived async shutdown over
poll_shutdown_owned.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
impl<ST, DT> CastableFrom<ST, Initialized, Initialized> for DT
impl<ST, DT> CastableFrom<ST, Uninit, Uninit> for DT
§impl<T> FutureExt for T
impl<T> FutureExt for T
§fn with_context(self, otel_cx: Context) -> WithContext<Self> ⓘ
fn with_context(self, otel_cx: Context) -> WithContext<Self> ⓘ
§fn with_current_context(self) -> WithContext<Self> ⓘ
fn with_current_context(self) -> WithContext<Self> ⓘ
§impl<T> Instrument for T
impl<T> Instrument for T
§fn instrument(self, span: Span) -> Instrumented<Self> ⓘ
fn instrument(self, span: Span) -> Instrumented<Self> ⓘ
§fn in_current_span(self) -> Instrumented<Self> ⓘ
fn in_current_span(self) -> 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> IntoRequest<T> for T
impl<T> IntoRequest<T> for T
§fn into_request(self) -> Request<T>
fn into_request(self) -> Request<T>
Wrap the input message
T in a rama_grpc::Request§impl<T> Pointable for T
impl<T> Pointable for T
§impl<T> PolicyExt for Twhere
T: ?Sized,
impl<T> PolicyExt for Twhere
T: ?Sized,
§fn and<P, B, E>(self, other: P) -> And<T, P>
fn and<P, B, E>(self, other: P) -> And<T, P>
Create a new
Policy that returns Action::Follow only if self and other return
Action::Follow. Read more§impl<T, U> RamaTryFrom<T> for Uwhere
U: TryFrom<T>,
impl<T, U> RamaTryFrom<T> for Uwhere
U: TryFrom<T>,
type Error = <U as TryFrom<T>>::Error
fn rama_try_from(value: T) -> Result<U, <U as RamaTryFrom<T>>::Error>
§impl<T, U, CrateMarker> RamaTryInto<U, CrateMarker> for Twhere
U: RamaTryFrom<T, CrateMarker>,
impl<T, U, CrateMarker> RamaTryInto<U, CrateMarker> for Twhere
U: RamaTryFrom<T, CrateMarker>,
type Error = <U as RamaTryFrom<T, CrateMarker>>::Error
fn rama_try_into(self) -> Result<U, <U as RamaTryFrom<T, CrateMarker>>::Error>
impl<T> Read<Exclusive, BecauseExclusive> for Twhere
T: ?Sized,
§impl<V, F> ValueFormatter<&V> for F
impl<V, F> ValueFormatter<&V> for F
§fn format_value(writer: impl ValueWriter, value: &&V)
fn format_value(writer: impl ValueWriter, value: &&V)
Write
value to writer§impl<V, F> ValueFormatter<Arc<V>> for F
impl<V, F> ValueFormatter<Arc<V>> for F
§fn format_value(writer: impl ValueWriter, value: &Arc<V>)
fn format_value(writer: impl ValueWriter, value: &Arc<V>)
Write
value to writer§impl<V, F> ValueFormatter<Box<V>> for F
impl<V, F> ValueFormatter<Box<V>> for F
§fn format_value(writer: impl ValueWriter, value: &Box<V>)
fn format_value(writer: impl ValueWriter, value: &Box<V>)
Write
value to writer§impl<V, F> ValueFormatter<Cow<'_, V>> for F
impl<V, F> ValueFormatter<Cow<'_, V>> for F
§fn format_value(writer: impl ValueWriter, value: &Cow<'_, V>)
fn format_value(writer: impl ValueWriter, value: &Cow<'_, V>)
Write
value to writer§impl<V, F> ValueFormatter<Option<V>> for Fwhere
F: ValueFormatter<V> + ?Sized,
impl<V, F> ValueFormatter<Option<V>> for Fwhere
F: ValueFormatter<V> + ?Sized,
§fn format_value(writer: impl ValueWriter, value: &Option<V>)
fn format_value(writer: impl ValueWriter, value: &Option<V>)
Write
value to writer