Skip to main content

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}