pub mod client;
pub mod coder;
pub mod connection;
pub mod crypto;
pub mod server;
pub const UID_LEN: usize = 16;
pub const COUNT_LEN: usize = size_of::<u64>();
pub const TIMESTAMP_LEN: usize = size_of::<u64>();
pub const REORDER_WINDOW: u64 = 128;
pub const PUB_KEY_LEN: usize = 32;
#[allow(non_snake_case, non_upper_case_globals)]
pub mod EventType {
pub const Encrypted: u8 = 1;
pub const Hello: u8 = 2;
pub const AckHello: u8 = 3;
pub const Connect: u8 = 4;
pub const AckConnect: u8 = 5;
pub const Heartbeat: u8 = 6;
pub const AckHeartbeat: u8 = 7;
}
#[derive(Debug, thiserror::Error)]
pub enum CsError {
#[error("Failed to send data")]
Socket(#[from] std::io::Error),
#[error("Failed to crypto")]
Crypto,
#[error("Connection broken")]
ConnectionBroken,
#[error("Invalid type")]
InvalidType(Option<u8>),
#[error("Invalid format")]
InvalidFormat,
#[error("Invalid uid")]
InvalidUid([u8; UID_LEN]),
#[error("Invalid counter")]
InvalidCounter(u64),
#[error("Invalid timestamp")]
InvalidTimestamp(u64),
#[error("System time error")]
SystemTime(#[from] std::time::SystemTimeError),
}