use crate::{error::Error, private};
pub trait Read: private::Sealed {
fn read(input: &mut impl std::io::Read) -> Result<Self, Error>
where
Self: Sized;
}
pub trait ReadVersioned: private::Sealed {
fn read(input: &mut impl std::io::Read, version: i32) -> Result<Self, Error>
where
Self: Sized;
}
pub trait ReadContext: private::Sealed {
type Context;
fn read_ctx(input: &mut impl std::io::Read, with: Self::Context) -> Result<Self, Error>
where
Self: Sized;
}
pub trait Write: private::Sealed {
fn write(&self, output: &mut impl std::io::Write) -> Result<(), Error>;
}