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