use zerocopy::{FromBytes, Immutable, IntoBytes, KnownLayout};
mod body;
mod codec;
mod error;
mod frame_type;
mod header;
mod magic;
mod raw;
#[allow(deprecated)]
pub use body::KeepAlive;
pub use body::{
Body, ClientInfo, ClientInfoPayload, ClosePeer, ForwardPacket, Health, NotePreferred, PeerGone,
PeerGoneReason, PeerPresent, Ping, Pong, RecvPacket, Restarting, SendPacket, ServerInfo,
ServerInfoPayload, ServerKey, WatchConns,
};
pub use codec::Codec;
pub use error::Error;
pub use frame_type::FrameType;
pub use header::{Header, RawHeader};
pub use magic::Magic;
pub use raw::RawFrame;
pub const MAX_PACKET_SIZE: usize = 64 << 10;
pub const MAX_INFO_LEN: usize = 1 << 20;
pub const KEEP_ALIVE: usize = 60;
pub const PROTOCOL_VERSION: usize = 2;
#[repr(C)]
#[derive(Debug, Copy, Clone, PartialEq, KnownLayout, Immutable, IntoBytes, FromBytes)]
pub struct Ip([u8; 16]);