Crate write_into
source · [−]Expand description
Defines a trait built on top of io::Write
to write things into it.
Instead of writing blanket implementations it its better to use wrappers
with write_into
function because there might be implementation conflicts
(e.g. between WriteInto
for u8
and WriteInto
for any
std::iter::IntoIterator
).
Example
use leb128;
use std::{convert, io};
use write_into::{WriteInto, write_into};
// https://en.wikipedia.org/wiki/LEB128
struct Leb128<T>(T);
impl<T> WriteInto for Leb128<T>
where
// `leb128` crate uses `u64` and I'm too lazy to write multiple implementations (._.)
T: convert::Into<u64>
{
type Output = ();
fn write_into(self, sink: &mut impl io::Write) -> io::Result<Self::Output> {
leb128::write::unsigned(sink, self.0.into())?;
Ok(())
}
}
let mut buffer = Vec::new();
write_into(&mut buffer, Leb128(1337u32)).unwrap();
Traits
Writes value into I/O sink.
Functions
An alias for WriteInto::write_into
for writing write_into(sink, Wrapper(...))
instead of
Wrapper(...).write_into(sink)
.