pub struct Position;Expand description
The key reading this delivery’s PulsarPosition out of PulsarContext.
The value is the delivery’s own message id, so it carries the framework’s pinned contract: seeking to it redelivers exactly this message.
A message id is not Copy, so ctx.context(Position) borrows it and only the Ctx<Position>
extractor - which must yield an owned value - copies one per delivery.
§Examples
use ruststream_pulsar::Position;
use ruststream_pulsar::prelude::*;
#[subscriber(PulsarSubscription::new("jobs", "auditors"))]
async fn audit(job: &Job, Ctx(at): Ctx<Position>) -> HandlerOutcome {
tracing::info!(job = job.id, position = ?at, "job audited");
HandlerOutcome::ack()
}Trait Implementations§
Source§impl ContextField for Position
impl ContextField for Position
Source§type Context = PulsarContext
type Context = PulsarContext
The per-delivery context type this key reads from.
Source§type Value = PulsarPosition
type Value = PulsarPosition
The owned value the key yields.
Source§fn read(self, src: &PulsarContext) -> PulsarPosition
fn read(self, src: &PulsarContext) -> PulsarPosition
Reads this key’s field out of
src. Named apart from Field::get so a key
implementing both traits stays unambiguous to call.impl Copy for Position
impl Eq for Position
Source§impl Field<PulsarContext> for Position
impl Field<PulsarContext> for Position
Source§type Value<'a> = &'a PulsarPosition
type Value<'a> = &'a PulsarPosition
The value read through this key, borrowed from the source for
'a.Source§fn get(self, src: &PulsarContext) -> &PulsarPosition
fn get(self, src: &PulsarContext) -> &PulsarPosition
Reads this key’s field out of
src.impl StructuralPartialEq for Position
Auto Trait Implementations§
impl Freeze for Position
impl RefUnwindSafe for Position
impl Send for Position
impl Sync for Position
impl Unpin for Position
impl UnsafeUnpin for Position
impl UnwindSafe for Position
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<K> CtxKey for Kwhere
K: ContextField,
impl<K> CtxKey for Kwhere
K: ContextField,
Source§type Value = <K as ContextField>::Value
type Value = <K as ContextField>::Value
The owned value the extractor binds.
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> 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