#input #parsing #primitives #untrusted

no-std untrustended

Untrustended - Untrusted Extended. A compilation of primitives for parsing values from untrusted input.

7 releases (4 breaking)

0.4.0 Jul 19, 2021
0.3.0 Jul 30, 2019
0.2.1 Oct 3, 2017
0.2.0 Sep 23, 2017
0.0.2 Jul 23, 2017

#79 in Parser tooling

Download history 18/week @ 2021-06-04 23/week @ 2021-06-11 55/week @ 2021-06-18 26/week @ 2021-06-25 37/week @ 2021-07-02 27/week @ 2021-07-09 55/week @ 2021-07-16 22/week @ 2021-07-23 94/week @ 2021-07-30 79/week @ 2021-08-06 121/week @ 2021-08-13 72/week @ 2021-08-20 83/week @ 2021-08-27 43/week @ 2021-09-03 79/week @ 2021-09-10 217/week @ 2021-09-17

193 downloads per month

ISC license

23KB
322 lines

untrustended Crates.ioCircleCI

Untrustended is a compilation of primitives for parsing values from untrusted input. It's building on top of untrusted's Reader::read_byte().

Please, consult untrusted's documentation about how to use that crate before attempting to use this one.

Example

See usage example in untrustended documentation.

License

See LICENSE.txt. ISC license.


lib.rs:

Untrustended - Untrusted Extended.

Untrustended is a compilation of primitives for parsing values from untrusted input. It's building on top of untrusted's Reader::read_byte() and Reader::read_bytes().

Please, consult untrusted's documentation about how to use that crate before attempting to use this one.

To use the new methods provided by this crate:

use untrustended::ReaderExt;

then construct a Reader as usual and enjoy.

Example:

use untrusted::{Input, Reader};
use untrustended::{ReaderExt, Error};

fn read_stuff(input: &mut Reader<'_>) -> Result<(u8, u16, u32), Error> {
    let one_byte = input.read_u8()?;
    let big_endian_u16 = input.read_u16be()?;
    let little_endian_u32 = input.read_u32le()?;
    Ok((one_byte, big_endian_u16, little_endian_u32))
}

fn main() {
    let buf = vec![0, 1, 2, 3, 4, 5, 6];
    let input = Input::from(&buf);

    input.read_all(Error::UnknownError, read_stuff).expect("read_all to succeed");
}

Dependencies

~29KB