Skip to main content

steel_protocol/packets/common/
s_custom_payload.rs

1use std::io::{Cursor, Read};
2
3use steel_macros::{ReadFrom, ServerPacket};
4use steel_utils::Identifier;
5
6use steel_utils::serial::ReadFrom;
7
8#[derive(ReadFrom, ServerPacket, Clone, Debug)]
9pub struct SCustomPayload {
10    pub identifier: Identifier,
11    //#[read(as = "vec")]
12    pub payload: Payload,
13}
14
15#[derive(Clone, Debug)]
16pub struct Payload(pub Vec<u8>);
17
18impl ReadFrom for Payload {
19    fn read(data: &mut Cursor<&[u8]>) -> Result<Self, std::io::Error> {
20        let mut buf = vec![];
21        data.read_to_end(&mut buf)?;
22        Ok(Self(buf))
23    }
24}