1use std::io::{Read, Write};
2
3pub trait BinaryFormat {
5 fn read_u16<R: Read>(reader: &mut R) -> std::io::Result<u16>;
7 fn write_u16<W: Write>(writer: &mut W, value: u16) -> std::io::Result<()>;
9
10 fn read_u32<R: Read>(reader: &mut R) -> std::io::Result<u32>;
12 fn write_u32<W: Write>(writer: &mut W, value: u32) -> std::io::Result<()>;
14
15 fn read_u64<R: Read>(reader: &mut R) -> std::io::Result<u64>;
17 fn write_u64<W: Write>(writer: &mut W, value: u64) -> std::io::Result<()>;
19
20 fn read_i16<R: Read>(reader: &mut R) -> std::io::Result<i16>;
22 fn write_i16<W: Write>(writer: &mut W, value: i16) -> std::io::Result<()>;
24
25 fn read_i32<R: Read>(reader: &mut R) -> std::io::Result<i32>;
27 fn write_i32<W: Write>(writer: &mut W, value: i32) -> std::io::Result<()>;
29
30 fn read_i64<R: Read>(reader: &mut R) -> std::io::Result<i64>;
32 fn write_i64<W: Write>(writer: &mut W, value: i64) -> std::io::Result<()>;
34
35 fn read_f32<R: Read>(reader: &mut R) -> std::io::Result<f32>;
37 fn write_f32<W: Write>(writer: &mut W, value: f32) -> std::io::Result<()>;
39
40 fn read_f64<R: Read>(reader: &mut R) -> std::io::Result<f64>;
42 fn write_f64<W: Write>(writer: &mut W, value: f64) -> std::io::Result<()>;
44}