1use gaia_types::Result;
2use std::io::{Read, Write};
3
4pub trait BinaryFormat {
6 fn read_u16<R: Read>(reader: &mut R) -> Result<u16>;
8 fn write_u16<W: Write>(writer: &mut W, value: u16) -> Result<()>;
10
11 fn read_u32<R: Read>(reader: &mut R) -> Result<u32>;
13 fn write_u32<W: Write>(writer: &mut W, value: u32) -> Result<()>;
15
16 fn read_u64<R: Read>(reader: &mut R) -> Result<u64>;
18 fn write_u64<W: Write>(writer: &mut W, value: u64) -> Result<()>;
20
21 fn read_i16<R: Read>(reader: &mut R) -> Result<i16>;
23 fn write_i16<W: Write>(writer: &mut W, value: i16) -> Result<()>;
25
26 fn read_i32<R: Read>(reader: &mut R) -> Result<i32>;
28 fn write_i32<W: Write>(writer: &mut W, value: i32) -> Result<()>;
30
31 fn read_i64<R: Read>(reader: &mut R) -> Result<i64>;
33 fn write_i64<W: Write>(writer: &mut W, value: i64) -> Result<()>;
35
36 fn read_f32<R: Read>(reader: &mut R) -> Result<f32>;
38 fn write_f32<W: Write>(writer: &mut W, value: f32) -> Result<()>;
40
41 fn read_f64<R: Read>(reader: &mut R) -> Result<f64>;
43 fn write_f64<W: Write>(writer: &mut W, value: f64) -> Result<()>;
45}