#![deny(unsafe_code)]
#![warn(missing_docs)]
pub mod backoff;
pub mod consumer;
pub mod cursor;
pub mod event;
pub mod metrics;
pub mod router;
pub mod zstd_dict;
pub use consumer::{spawn_consumer, spawn_consumer_with_cursor};
pub use event::JetstreamEvent;
pub use metrics::JetstreamMetrics;
pub use router::{CommitEvent, EventRouterBuilder, Operation};
use std::sync::Arc;
use futures::future::BoxFuture;
#[derive(Debug, Clone)]
pub struct StreamConfig {
pub host: String,
pub collections: Vec<String>,
pub zstd_dict: Option<String>,
pub channel_capacity: usize,
pub max_lag_events: usize,
pub cursor: Option<String>,
}
pub type EventHandler<S> =
Arc<dyn Fn(JetstreamEvent, S) -> BoxFuture<'static, anyhow::Result<()>> + Send + Sync>;