datex_core/global/protocol_structures/
serializable.rs1use crate::stdlib::vec::Vec;
2use binrw::io::Cursor;
3use binrw::{
4 BinWrite,
5 meta::{ReadEndian, WriteEndian},
6};
7use core::prelude::rust_2024::*;
8
9pub trait Serializable: BinWrite + ReadEndian + WriteEndian {
10 fn to_bytes(&self) -> Result<Vec<u8>, binrw::Error>
11 where
12 for<'a> Self::Args<'a>: Default,
13 {
14 let mut writer = Cursor::new(Vec::new());
15 self.write(&mut writer)?;
16 let bytes = writer.into_inner();
17 Ok(bytes)
18 }
19}