#![warn(missing_docs)]
#![allow(clippy::large_enum_variant)]
use std::sync::Arc;
use tokio::sync::mpsc;
mod broker_settings;
mod control;
mod peer;
mod publisher;
mod session;
mod sessions;
mod subs;
mod trigger;
pub mod service;
pub use broker_settings::BrokerSettings;
use peer::Peer;
use publisher::Cache;
pub use publisher::Publisher;
use sage_mqtt::Packet;
pub use session::Session;
pub use sessions::Sessions;
pub use subs::Subs;
pub use trigger::Trigger;
pub type CommandSender = mpsc::UnboundedSender<(Arc<Peer>, Packet)>;
pub type CommandReceiver = mpsc::UnboundedReceiver<(Arc<Peer>, Packet)>;
type PacketReceiver = mpsc::UnboundedReceiver<Packet>;
type PacketSender = mpsc::UnboundedSender<Packet>;