pub struct RoundMessage<F: Form> { /* private fields */ }Expand description
A delivery of a .pipeline() subscription.
It reads as the form’s own delivery does, and settles into the window instead of on the
connection: ack commits what the handler queued together with the delivery’s settle, and
every other outcome drops it. A delivery dropped unsettled drops its segment and stays with
the broker.
§Examples
use ruststream_fred::stream::prelude::*;
#[subscriber(RedisStream::new("orders").group("workers"))]
async fn work(order: &Order) -> HandlerOutcome {
println!("order {}", order.id);
HandlerOutcome::ack()
}
fn app() -> RustStream {
RustStream::new(AppInfo::new("orders", "0.1.0")).with_broker(
RedisBroker::standalone("redis://localhost:6379"),
|b| {
// The subscription yields this type; the handler reads it as any delivery.
b.include(work.pipeline());
},
)
}Trait Implementations§
Source§impl<F: Form> BuildBatchContext<RoundMessage<F>> for PipelineContext
A batch of a .pipeline() subscription is one segment: its context hands the batch body the
round every delivery of the batch shares.
impl<F: Form> BuildBatchContext<RoundMessage<F>> for PipelineContext
A batch of a .pipeline() subscription is one segment: its context hands the batch body the
round every delivery of the batch shares.
Source§fn build(first: &RoundMessage<F>) -> Self
fn build(first: &RoundMessage<F>) -> Self
Builds the context value by reading subscription-scoped fields out of the batch’s first
delivery.
Source§impl<F: Form> BuildContext<RoundMessage<F>> for PipelineContext
impl<F: Form> BuildContext<RoundMessage<F>> for PipelineContext
Source§fn build(msg: &RoundMessage<F>) -> Self
fn build(msg: &RoundMessage<F>) -> Self
Builds the context value by reading fields out of
msg.Source§impl<F: Form> BuildContext<RoundMessage<F>> for PoolContext
impl<F: Form> BuildContext<RoundMessage<F>> for PoolContext
Source§fn build(msg: &RoundMessage<F>) -> Self
fn build(msg: &RoundMessage<F>) -> Self
Builds the context value by reading fields out of
msg.Source§impl<F: Form> Debug for RoundMessage<F>where
F::Message: Debug,
impl<F: Form> Debug for RoundMessage<F>where
F::Message: Debug,
Source§impl<F: Form> Drop for RoundMessage<F>
impl<F: Form> Drop for RoundMessage<F>
Source§impl<F: Form> IncomingMessage for RoundMessage<F>
impl<F: Form> IncomingMessage for RoundMessage<F>
Source§fn payload(&self) -> &[u8] ⓘ
fn payload(&self) -> &[u8] ⓘ
Also enters the round: the payload is what the runtime reads to decode the input, and it reads the headers only when something asks for them.
Source§fn headers(&self) -> &HeaderMap
fn headers(&self) -> &HeaderMap
Also enters the round, for a handler that reads the headers alone.
Source§fn partition_key(&self) -> Option<&[u8]>
fn partition_key(&self) -> Option<&[u8]>
Returns the routing key the broker partitioned this message by, or
None when the
message carries no key. Read moreSource§fn redelivery_count(&self) -> Option<u64>
fn redelivery_count(&self) -> Option<u64>
How many times the broker has delivered this message, counting this delivery.
None
where the transport counts nothing. Read moreSource§fn supports_nack_after(&self) -> bool
fn supports_nack_after(&self) -> bool
Reports whether this transport can honor
nack_after natively. Read moreSource§async fn ack(self) -> Result<(), AckError>
async fn ack(self) -> Result<(), AckError>
Acknowledges successful processing. Consumes the message handle. Read more
Source§impl<F: Form> Partitioned for RoundMessage<F>where
F::Message: Partitioned,
impl<F: Form> Partitioned for RoundMessage<F>where
F::Message: Partitioned,
Source§fn partition_key(&self) -> Option<&[u8]>
fn partition_key(&self) -> Option<&[u8]>
Returns the partition key for this item, or
None if the broker should pick a partition.Auto Trait Implementations§
impl<F> !Freeze for RoundMessage<F>
impl<F> !RefUnwindSafe for RoundMessage<F>
impl<F> !UnwindSafe for RoundMessage<F>
impl<F> Send for RoundMessage<F>
impl<F> Sync for RoundMessage<F>
impl<F> Unpin for RoundMessage<F>
impl<F> UnsafeUnpin for RoundMessage<F>
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> 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 more