nurtex_protocol/packet.rs
1/// Трейт пакета протокола
2pub trait ProtocolPacket
3where
4 Self: Sized,
5{
6 /// Метод получения ID текущего пакета
7 fn id(&self) -> u32;
8
9 /// Метод чтения данных определённого пакета из буффера
10 fn read(id: u32, buffer: &mut std::io::Cursor<&[u8]>) -> Option<Self>;
11
12 /// Метод записи данных пакета в буффер
13 fn write(&self, buffer: &mut impl std::io::Write) -> std::io::Result<()>;
14}
15
16/// Трейт для получения образца пакета
17pub trait IntoPacket<T> {
18 fn into_packet(self) -> T;
19}