#write #into #endian #leb128


A trait to write things into io::Write

15 releases

Uses new Rust 2021

0.3.9 Jun 4, 2022
0.3.8 Jun 2, 2022
0.3.7 May 24, 2022
0.2.0 May 21, 2022
0.1.3 May 21, 2022

#2 in #leb128

MIT license

485 lines


Defines a trait built on top of io::Write to write things into it.

use std::io;

trait WriteInto {
    type Output;
    fn write_into(self, sink: &mut impl io::Write) -> io::Result<Self::Output>;

The crate also provides wrappers, such as BigEndian and LittleEndian, to write values in particular formats.


use write_into::{BigEndian, write_into};

let mut buffer = Vec::new();
write_into(&mut buffer, BigEndian(0xCAFEBABEu32)).unwrap();
assert_eq!(&buffer, &[0xCA, 0xFE, 0xBA, 0xBE]);


Wrapper Used to write values...
BigEndian ... in big endian byte order.
LittleEndian ... in little endian byte order.
Plain ... as they are represented in memory.
Sequence ... from IntoIterator.
Sized ... prepended with size of their representation.
SizedSequence ... from IntoIterator with known size.
Sleb128 ... in LEB-128 format (signed).
Uleb128 ... in LEB-128 format (unsigned).

No runtime deps