use std::sync::Arc;
use crate::chain::ChainRegistry;
pub mod accept;
pub mod if_match;
pub mod if_modified_since;
pub mod if_none_match;
pub mod if_range;
pub mod if_unmodified_since;
pub mod range_satisfiable;
pub mod range_unsatisfiable;
pub use accept::CpAccept;
pub use if_match::CpIfMatch;
pub use if_modified_since::CpIfModifiedSince;
pub use if_none_match::CpIfNoneMatch;
pub use if_range::CpIfRange;
pub use if_unmodified_since::CpIfUnmodifiedSince;
pub use range_satisfiable::CpRangeSatisfiable;
pub use range_unsatisfiable::CpRangeUnsatisfiable;
#[must_use]
pub fn cp_chain_registry() -> ChainRegistry {
let mut reg = ChainRegistry::new();
reg.register(
Arc::new(if_match::CpIfMatchProducer),
Arc::new(if_match::CpIfMatchConsumer),
);
reg.register(
Arc::new(if_none_match::CpIfNoneMatchProducer),
Arc::new(if_none_match::CpIfNoneMatchConsumer),
);
reg.register(
Arc::new(if_range::CpIfRangeProducer),
Arc::new(if_range::CpIfRangeConsumer),
);
reg.register(
Arc::new(if_modified_since::CpIfModifiedSinceProducer),
Arc::new(if_modified_since::CpIfModifiedSinceConsumer),
);
reg.register(
Arc::new(if_unmodified_since::CpIfUnmodifiedSinceProducer),
Arc::new(if_unmodified_since::CpIfUnmodifiedSinceConsumer),
);
reg.register(
Arc::new(range_satisfiable::CpRangeSizeProducer),
Arc::new(range_satisfiable::CpRangeSatisfiableConsumer),
);
reg.register(
Arc::new(range_satisfiable::CpRangeSizeProducer),
Arc::new(range_unsatisfiable::CpRangeUnsatisfiableConsumer),
);
reg
}
#[cfg(test)]
mod tests {
use super::*;
#[test]
fn cp_chain_registry_has_seven_edges() {
assert_eq!(cp_chain_registry().len(), 7);
}
}