pub struct Take;Expand description
The declaration of a transport whose client keeps the payload: it is handed a BytesMut
of its own.
The buffer arrives as it was written, so Vec::from and BytesMut::freeze turn it into
what the client speaks without copying it. See PayloadForm.
§Examples
use std::io;
use ruststream::{Bytes, BytesMut, OutgoingMessage, Publisher, Take};
/// The client queues the record and sends it later, so it keeps the buffer: `freeze` turns it
/// into the `Bytes` the client speaks without a copy.
struct QueuedPublisher {
producer: Producer,
}
impl Publisher for QueuedPublisher {
type Payload = Take;
type Error = io::Error;
type Options = ();
async fn publish(
&self,
msg: OutgoingMessage<'_, BytesMut>,
_options: Option<&()>,
) -> io::Result<()> {
let topic = msg.name();
self.producer.send(topic, msg.into_payload().freeze()).await
}
}Trait Implementations§
impl Copy for Take
impl Eq for Take
Source§impl PayloadForm for Take
impl PayloadForm for Take
impl StructuralPartialEq for Take
Auto Trait Implementations§
impl Freeze for Take
impl RefUnwindSafe for Take
impl Send for Take
impl Sync for Take
impl Unpin for Take
impl UnsafeUnpin for Take
impl UnwindSafe for Take
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
impl<ST, DT> CastableFrom<ST, Initialized, Initialized> for DT
impl<ST, DT> CastableFrom<ST, Uninit, Uninit> for DT
Source§impl<T> CloneToUninit for Twhere
T: Clone,
impl<T> CloneToUninit for Twhere
T: Clone,
Source§impl<Q, K> Equivalent<K> for Q
impl<Q, K> Equivalent<K> for Q
Source§impl<Q, K> Equivalent<K> for Q
impl<Q, K> Equivalent<K> for Q
Source§fn equivalent(&self, key: &K) -> bool
fn equivalent(&self, key: &K) -> bool
Compare self to
key and return true if they are equal.Source§impl<T> FutureExt for T
impl<T> FutureExt for T
Source§fn with_context(self, otel_cx: Context) -> WithContext<Self> ⓘ
fn with_context(self, otel_cx: Context) -> WithContext<Self> ⓘ
Source§fn with_current_context(self) -> WithContext<Self> ⓘ
fn with_current_context(self) -> WithContext<Self> ⓘ
Source§impl<T> Instrument for T
impl<T> Instrument for T
Source§fn instrument(self, span: Span) -> Instrumented<Self> ⓘ
fn instrument(self, span: Span) -> Instrumented<Self> ⓘ
Source§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 moreSource§impl<T> IntoRequest<T> for T
impl<T> IntoRequest<T> for T
Source§fn into_request(self) -> Request<T>
fn into_request(self) -> Request<T>
Wrap the input message
T in a tonic::Request