Struct async_nats::jetstream::stream::Config
source · pub struct Config {Show 32 fields
pub name: String,
pub max_bytes: i64,
pub max_messages: i64,
pub max_messages_per_subject: i64,
pub discard: DiscardPolicy,
pub discard_new_per_subject: bool,
pub subjects: Vec<String>,
pub retention: RetentionPolicy,
pub max_consumers: i32,
pub max_age: Duration,
pub max_message_size: i32,
pub storage: StorageType,
pub num_replicas: usize,
pub no_ack: bool,
pub duplicate_window: Duration,
pub template_owner: String,
pub sealed: bool,
pub description: Option<String>,
pub allow_rollup: bool,
pub deny_delete: bool,
pub deny_purge: bool,
pub republish: Option<Republish>,
pub allow_direct: bool,
pub mirror_direct: bool,
pub mirror: Option<Source>,
pub sources: Option<Vec<Source>>,
pub metadata: HashMap<String, String>,
pub subject_transform: Option<SubjectTransform>,
pub compression: Option<Compression>,
pub consumer_limits: Option<ConsumerLimits>,
pub first_sequence: Option<u64>,
pub placement: Option<Placement>,
}
Expand description
StreamConfig
determines the properties for a stream.
There are sensible defaults for most. If no subjects are
given the name will be used as the only subject.
Fields§
§name: String
A name for the Stream. Must not have spaces, tabs or period .
characters
max_bytes: i64
How large the Stream may become in total bytes before the configured discard policy kicks in
max_messages: i64
How large the Stream may become in total messages before the configured discard policy kicks in
max_messages_per_subject: i64
Maximum amount of messages to keep per subject
discard: DiscardPolicy
When a Stream has reached its configured max_bytes
or max_msgs
, this policy kicks in.
DiscardPolicy::New
refuses new messages or DiscardPolicy::Old
(default) deletes old messages to make space
discard_new_per_subject: bool
Prevents a message from being added to a stream if the max_msgs_per_subject limit for the subject has been reached
subjects: Vec<String>
Which NATS subjects to populate this stream with. Supports wildcards. Defaults to just the
configured stream name
.
retention: RetentionPolicy
How message retention is considered, Limits
(default), Interest
or WorkQueue
max_consumers: i32
How many Consumers can be defined for a given Stream, -1 for unlimited
max_age: Duration
Maximum age of any message in the stream, expressed in nanoseconds
max_message_size: i32
The largest message that will be accepted by the Stream
storage: StorageType
The type of storage backend, File
(default) and Memory
num_replicas: usize
How many replicas to keep for each message in a clustered JetStream, maximum 5
no_ack: bool
Disables acknowledging messages that are received by the Stream
duplicate_window: Duration
The window within which to track duplicate messages.
template_owner: String
The owner of the template associated with this stream.
sealed: bool
Indicates the stream is sealed and cannot be modified in any way
description: Option<String>
A short description of the purpose of this stream.
allow_rollup: bool
Indicates if rollups will be allowed or not.
deny_delete: bool
Indicates deletes will be denied or not.
deny_purge: bool
Indicates if purges will be denied or not.
republish: Option<Republish>
Optional republish config.
allow_direct: bool
Enables direct get, which would get messages from non-leader.
mirror_direct: bool
Enable direct access also for mirrors.
mirror: Option<Source>
Stream mirror configuration.
sources: Option<Vec<Source>>
Sources configuration.
metadata: HashMap<String, String>
Additional stream metadata.
subject_transform: Option<SubjectTransform>
Allow applying a subject transform to incoming messages
compression: Option<Compression>
Override compression config for this stream.
Wrapping enum that has None
type with Option is there
because Stream can override global compression set to Compression::S2
to Compression::None, which is different from not overriding global config with anything.
consumer_limits: Option<ConsumerLimits>
Set limits on consumers that are created on this stream.
first_sequence: Option<u64>
Sets the first sequence for the stream.
placement: Option<Placement>
Placement configuration for clusters and tags.
Trait Implementations§
source§impl<'de> Deserialize<'de> for Config
impl<'de> Deserialize<'de> for Config
source§fn deserialize<__D>(__deserializer: __D) -> Result<Self, __D::Error>where
__D: Deserializer<'de>,
fn deserialize<__D>(__deserializer: __D) -> Result<Self, __D::Error>where
__D: Deserializer<'de>,
impl Eq for Config
impl StructuralPartialEq for Config
Auto Trait Implementations§
impl Freeze for Config
impl RefUnwindSafe for Config
impl Send for Config
impl Sync for Config
impl Unpin for Config
impl UnwindSafe for Config
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
source§impl<T> CloneToUninit for Twhere
T: Clone,
impl<T> CloneToUninit for Twhere
T: Clone,
source§unsafe fn clone_to_uninit(&self, dst: *mut T)
unsafe fn clone_to_uninit(&self, dst: *mut T)
clone_to_uninit
)