Function rmp::encode::write_u8

source ·
pub fn write_u8<W: RmpWrite>(
    wr: &mut W,
    val: u8,
) -> Result<(), ValueWriteError<W::Error>>
Expand description

Encodes and attempts to write an u8 value as a 2-byte sequence into the given write.

The first byte becomes the marker and the second one will represent the data itself.

Note, that this function will encode the given value in 2-byte sequence no matter what, even if the value can be represented using single byte as a positive fixnum.

If you need to fit the given buffer efficiently use write_uint instead, which automatically selects the appropriate integer representation.

§Errors

This function will return ValueWriteError on any I/O error occurred while writing either the marker or the data.

§Examples

let mut buf = [0x00, 0x00];

rmp::encode::write_u8(&mut &mut buf[..], 146).ok().unwrap();
assert_eq!([0xcc, 0x92], buf);

// Note, that 42 can be represented simply as `[0x2a]`, but the function emits 2-byte sequence.
rmp::encode::write_u8(&mut &mut buf[..], 42).ok().unwrap();
assert_eq!([0xcc, 0x2a], buf);