Skip to main content

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}