#[non_exhaustive]pub struct StreamInfoStreamReplyWithIdempotency {
pub base: StreamInfoStreamReply,
pub idmp_duration: u32,
pub idmp_maxsize: u16,
pub pids_tracked: usize,
pub iids_tracked: usize,
pub iids_added: usize,
pub iids_duplicates: usize,
}Expand description
Reply type used with xinfo_stream_with_idempotency command (Redis 8.6+).
This type composes StreamInfoStreamReply with additional idempotency tracking fields
introduced in Redis 8.6.
The base stream information is accessible via the base field, while idempotency
fields are directly available as top-level fields.
§Example
use redis::{Commands, streams::StreamInfoStreamReplyWithIdempotency};
let info: StreamInfoStreamReplyWithIdempotency = con.xinfo_stream_with_idempotency("stream").unwrap();
// Access base stream info
println!("Stream length: {}", info.base.length);
println!("Last ID: {}", info.base.last_generated_id);
// Access idempotency tracking (Redis 8.6+)
println!("Producers tracked: {}", info.pids_tracked);
println!("Idempotent IDs tracked: {}", info.iids_tracked);
println!("Duplicates prevented: {}", info.iids_duplicates);Fields (Non-exhaustive)§
This struct is marked as non-exhaustive
Struct { .. } syntax; cannot be matched against without a wildcard ..; and struct update syntax will not work.base: StreamInfoStreamReplyBase stream information
idmp_duration: u32The duration in seconds that idempotent IDs are retained in the stream’s IDMP map
idmp_maxsize: u16The maximum number of idempotent IDs kept for each producer in the stream’s IDMP map
pids_tracked: usizeThe number of unique producer IDs currently being tracked
iids_tracked: usizeThe total number of idempotent IDs currently stored across all producers
iids_added: usizeThe total count of idempotent IDs that have been added to the stream during its lifetime
iids_duplicates: usizeThe total count of duplicate messages that were detected and prevented by IDMP
Trait Implementations§
Source§impl Clone for StreamInfoStreamReplyWithIdempotency
impl Clone for StreamInfoStreamReplyWithIdempotency
Source§fn clone(&self) -> StreamInfoStreamReplyWithIdempotency
fn clone(&self) -> StreamInfoStreamReplyWithIdempotency
1.0.0 (const: unstable) · Source§fn clone_from(&mut self, source: &Self)
fn clone_from(&mut self, source: &Self)
source. Read moreSource§impl Default for StreamInfoStreamReplyWithIdempotency
impl Default for StreamInfoStreamReplyWithIdempotency
Source§fn default() -> StreamInfoStreamReplyWithIdempotency
fn default() -> StreamInfoStreamReplyWithIdempotency
Source§impl FromRedisValue for StreamInfoStreamReplyWithIdempotency
impl FromRedisValue for StreamInfoStreamReplyWithIdempotency
Source§fn from_redis_value(v: Value) -> Result<Self, ParsingError>
fn from_redis_value(v: Value) -> Result<Self, ParsingError>
Value this attempts to convert it into the given
destination type. If that fails because it’s not compatible an
appropriate error is generated.Source§fn from_redis_value_ref(v: &Value) -> Result<Self, ParsingError>
fn from_redis_value_ref(v: &Value) -> Result<Self, ParsingError>
Value this attempts to convert it into the given
destination type. If that fails because it’s not compatible an
appropriate error is generated.Source§fn from_redis_value_refs(items: &[Value]) -> Result<Vec<Self>, ParsingError>
fn from_redis_value_refs(items: &[Value]) -> Result<Vec<Self>, ParsingError>
from_redis_value_ref but constructs a vector of objects
from another vector of values. This primarily exists internally
to customize the behavior for vectors of tuples.Source§fn from_redis_values(items: Vec<Value>) -> Result<Vec<Self>, ParsingError>
fn from_redis_values(items: Vec<Value>) -> Result<Vec<Self>, ParsingError>
from_redis_value_refs, but takes a Vec<Value> instead
of a &[Value].Source§fn from_each_redis_values(items: Vec<Value>) -> Vec<Result<Self, ParsingError>>
fn from_each_redis_values(items: Vec<Value>) -> Vec<Result<Self, ParsingError>>
from_redis_values, but returns a result for each
conversion to make handling them case-by-case possible.