mc_network_io/encoding.rs
1use std::io::Cursor;
2use std::io::Read;
3use std::io::Result;
4use std::io::Write;
5
6pub trait Encoder {
7 fn encode_to_write<W: Write>(&self, writer: &mut W) -> Result<()>;
8
9 fn encode(&self) -> Result<Cursor<Vec<u8>>> {
10 let mut bytes = Cursor::new(Vec::new());
11 self.encode_to_write(&mut bytes)?;
12 Ok(bytes)
13 }
14}
15
16pub trait Decoder: Sized {
17 fn decode_from_read<R: Read>(reader: &mut R) -> Result<Self>;
18}