#![cfg_attr(docsrs, feature(doc_cfg))]
mod collector;
mod context;
mod error;
mod event;
mod event_key;
mod field_map;
pub mod io;
mod metadata;
mod namespace;
mod organization;
pub mod partition;
mod payload;
mod payload_codec;
mod serialization;
mod snapshot;
mod topic;
pub use collector::EventCollector;
pub use context::{Context, ContextError, ContextValue};
pub use error::{Error, Result};
pub use event::{Event, EventId};
pub use event_key::EventKey;
pub use field_map::FieldMap;
pub use metadata::Metadata;
pub use namespace::Namespace;
pub use organization::OrganizationId;
pub use partition::Partition;
pub use payload_codec::{
EventCodec, JsonPayloadCodec, PayloadCodec, PayloadEventCodec, PayloadPassthroughCodec,
};
pub use io::filter::{NamespacePattern, TopicPattern};
pub use io::position::PartitionableSubscription;
pub use io::position::{StartFrom, StartableSubscription, StopAt};
pub use payload::{ContentType, Payload};
pub use serialization::{SerializedEvent, SerializedPayload};
pub use snapshot::{Snapshot, SnapshotEventId};
pub use topic::Topic;
#[cfg(test)]
mod tests {
use super::*;
#[test]
fn root_reexports_filter_patterns() {
let topic = TopicPattern::exact(Topic::new("invoice.created").unwrap());
let namespace = NamespacePattern::prefix(Namespace::new("/billing").unwrap());
assert!(topic.matches_topic(&Topic::new("invoice.created").unwrap()));
assert!(namespace.matches_namespace(&Namespace::new("/billing/invoices").unwrap()));
}
}