use crate::options::retry::RetryOptions;
use crate::options::CommonOperationOptions;
use crate::{impl_options_trait, Position, StreamPosition, SubscriptionFilter};
#[derive(Clone)]
pub struct SubscribeToAllOptions {
pub(crate) position: StreamPosition<Position>,
pub(crate) resolve_link_tos: bool,
pub(crate) filter: Option<SubscriptionFilter>,
pub(crate) retry: Option<RetryOptions>,
pub(crate) common_operation_options: CommonOperationOptions,
}
impl Default for SubscribeToAllOptions {
fn default() -> Self {
Self {
filter: None,
position: StreamPosition::Start,
resolve_link_tos: false,
retry: None,
common_operation_options: Default::default(),
}
}
}
impl_options_trait!(SubscribeToAllOptions, super::OperationKind::Streaming);
impl SubscribeToAllOptions {
pub fn position(self, position: StreamPosition<Position>) -> Self {
Self { position, ..self }
}
pub fn filter(self, filter: SubscriptionFilter) -> Self {
Self {
filter: Some(filter),
..self
}
}
pub fn resolve_link_tos(self) -> Self {
Self {
resolve_link_tos: true,
..self
}
}
pub fn retry_options(self, options: RetryOptions) -> Self {
Self {
retry: Some(options),
..self
}
}
}