use crate::frame::Mask;
pub trait RoleHelper: Clone + Copy {
const SHORT_FRAME_HEAD_LEN: u8;
const COMMON_FRAME_HEAD_LEN: u8;
const LONG_FRAME_HEAD_LEN: u8;
fn new() -> Self;
fn mask_key(&self) -> Mask;
fn set_mask_key(&mut self, _: [u8; 4]) {}
}
pub trait ClientRole: RoleHelper {
const SHORT_FRAME_HEAD_LEN: u8 = 2;
const COMMON_FRAME_HEAD_LEN: u8 = 2 + 2;
const LONG_FRAME_HEAD_LEN: u8 = 2 + 8;
}
pub trait ServerRole: RoleHelper {}
pub trait AutoMaskClientRole: ClientRole {
const UPDATE_MASK_KEY: bool;
}
mod server;
mod client;
pub use server::Server;
pub use client::{Client, StandardClient, FixedMaskClient};