pub struct NatsSubscriber { /* private fields */ }Expand description
A NATS subscription.
Backed transparently by either a Core subscription (no ack) or a JetStream pull consumer
(full ack/nack/term). Construct via ConnectedNatsBroker::subscribe_with with
CoreSubject or JetStreamSubject, or let the runtime resolve either source at startup.
Trait Implementations§
Source§impl BatchSubscriber for NatsSubscriber
impl BatchSubscriber for NatsSubscriber
Source§fn batches(
&mut self,
size: NonZeroUsize,
) -> impl Stream<Item = Result<Self::Batch, Self::Error>> + Send + '_
fn batches( &mut self, size: NonZeroUsize, ) -> impl Stream<Item = Result<Self::Batch, Self::Error>> + Send + '_
Returns a stream of batches of at most size messages.
size is the registration’s batch size, and each transport spends it in its own currency.
JetStream batches on the wire: one stream item is one pull fetch of up to size
messages, waiting at most pull_expires before
delivering a partial batch (an empty fetch is retried, so the stream never yields empty
batches). Core NATS has no wire-level batching, so its batches are assembled on the client
by the framework’s BufferedSubscriber: a batch closes at size deliveries or 10 ms
after its first one, whichever comes first.
Drive a subscriber through either Subscriber::stream or batches, not both at once:
on JetStream each issues its own pull requests, so deliveries would be split between
them.
§Cancel safety
Dropping the returned stream between items is allowed. On JetStream, dropping it
mid-fetch can leave already-fetched, undelivered messages to be redelivered after the
consumer’s ack_wait.
Source§type Batch = Vec<NatsMessage>
type Batch = Vec<NatsMessage>
batches. Implementations choose between Vec, custom
iterators, or anything else that yields the underlying Subscriber::Message.Source§impl Debug for NatsSubscriber
impl Debug for NatsSubscriber
Source§impl Subscriber for NatsSubscriber
impl Subscriber for NatsSubscriber
Source§type Message = NatsMessage
type Message = NatsMessage
Auto Trait Implementations§
impl !RefUnwindSafe for NatsSubscriber
impl !UnwindSafe for NatsSubscriber
impl Freeze for NatsSubscriber
impl Send for NatsSubscriber
impl Sync for NatsSubscriber
impl Unpin for NatsSubscriber
impl UnsafeUnpin for NatsSubscriber
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
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> ⓘ
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> ⓘ
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