pub struct RedisListPublish { /* private fields */ }Expand description
The declaration half of the list publisher: envelope codec and key TTL, no connection.
Constructible anywhere, it pairs into a RedisListPublisher against a
ConnectedRedisBroker.
§Examples
use std::time::Duration;
use ruststream::codec::JsonCodec;
use ruststream_fred::RedisListPublish;
let publish = RedisListPublish::new()
.codec(JsonCodec)
.ttl(Duration::from_secs(300));Implementations§
Source§impl RedisListPublish
impl RedisListPublish
Sourcepub fn new() -> Self
pub fn new() -> Self
A policy with the default binary framing and no key TTL. Equivalent to Self::default.
Sourcepub fn codec(self, codec: impl Codec + 'static) -> Self
pub fn codec(self, codec: impl Codec + 'static) -> Self
Serializes the header/payload envelope with codec (must match the subscriber). Without it
the default lossless binary framing is used.
Sourcepub const fn ttl(self, ttl: Duration) -> Self
pub const fn ttl(self, ttl: Duration) -> Self
Sets a time-to-live on the list key, refreshed (PEXPIRE) on every publish, so an idle
queue auto-expires. Off by default: without it the list lives until drained or deleted.
This is a per-key TTL on the whole list, not per-entry: Redis lists have no per-element
expiry, only the key can expire. Each publish pushes the entry and re-arms the key’s TTL in
one pipeline, so an actively used queue never expires and only an idle one does. A sub-
millisecond ttl is clamped up to 1ms, since PEXPIRE 0 would delete the key outright.
Trait Implementations§
Source§impl Clone for RedisListPublish
impl Clone for RedisListPublish
Source§fn clone(&self) -> RedisListPublish
fn clone(&self) -> RedisListPublish
1.0.0 (const: unstable) · Source§fn clone_from(&mut self, source: &Self)
fn clone_from(&mut self, source: &Self)
source. Read moreSource§impl Debug for RedisListPublish
impl Debug for RedisListPublish
Source§impl Default for RedisListPublish
impl Default for RedisListPublish
Source§fn default() -> RedisListPublish
fn default() -> RedisListPublish
Source§impl PublishPolicy<ConnectedRedisBroker> for RedisListPublish
impl PublishPolicy<ConnectedRedisBroker> for RedisListPublish
Source§type Live = RedisListPublisher
type Live = RedisListPublisher
Publisher for a leaf policy, or the live
wiring form for a combinator stack (a typed publisher over a policy pairs into the same
typed publisher over the live leaf).Auto Trait Implementations§
impl !RefUnwindSafe for RedisListPublish
impl !UnwindSafe for RedisListPublish
impl Freeze for RedisListPublish
impl Send for RedisListPublish
impl Sync for RedisListPublish
impl Unpin for RedisListPublish
impl UnsafeUnpin for RedisListPublish
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> CloneToUninit for Twhere
T: Clone,
impl<T> CloneToUninit for Twhere
T: Clone,
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