pub trait Writable<C: Context> {
fn write_to<T: ?Sized + Writer<C>>(
&self,
writer: &mut T
) -> Result<(), C::Error>;
fn write_to_buffer(&self, buffer: &mut [u8]) -> Result<(), C::Error>
where
Self: DefaultContext<Context = C>,
C: Default,
{ ... }
fn write_to_vec(&self) -> Result<Vec<u8>, C::Error>
where
Self: DefaultContext<Context = C>,
C: Default,
{ ... }
fn write_to_stream<S: Write>(&self, stream: S) -> Result<(), C::Error>
where
Self: DefaultContext<Context = C>,
C: Default,
{ ... }
fn write_to_file(&self, path: impl AsRef<Path>) -> Result<(), C::Error>
where
Self: DefaultContext<Context = C>,
C: Default,
{ ... }
fn write_to_buffer_with_ctx(
&self,
context: C,
buffer: &mut [u8]
) -> Result<(), C::Error> { ... }
fn write_to_buffer_with_ctx_mut(
&self,
context: &mut C,
buffer: &mut [u8]
) -> Result<(), C::Error> { ... }
fn write_to_vec_with_ctx(&self, context: C) -> Result<Vec<u8>, C::Error> { ... }
fn write_to_vec_with_ctx_mut(
&self,
context: &mut C
) -> Result<Vec<u8>, C::Error> { ... }
fn write_to_stream_with_ctx<S: Write>(
&self,
context: C,
stream: S
) -> Result<(), C::Error> { ... }
fn write_to_file_with_ctx(
&self,
context: C,
path: impl AsRef<Path>
) -> Result<(), C::Error> { ... }
fn bytes_needed(&self) -> Result<usize, C::Error> { ... }
}