mod codec;
mod message;
mod packet;
pub use codec::{decode_packet, encode_packet, PacketCodec};
pub use message::{ControlMessage, DataMessage, Message, MessageType};
pub use packet::{Packet, PacketFlags, PacketHeader, PacketType};
use crate::PROTOCOL_VERSION;
pub const HEADER_SIZE: usize = 60;
pub const MAX_PAYLOAD_SIZE: usize = 1400;
pub const MIN_PACKET_SIZE: usize = HEADER_SIZE;
pub fn checksum(data: &[u8]) -> u32 {
let mut hasher = crc32fast::Hasher::new();
hasher.update(data);
hasher.finalize()
}
pub fn is_compatible_version(version: u8) -> bool {
version == PROTOCOL_VERSION
}