#untrusted #input #primitive #parser

无需 std untrustended

Untrustended - Untrusted 扩展。从未授权输入解析值的原语集合。

8 个版本 (4 个重大更新)

0.4.1 2024年1月3日
0.4.0 2021年7月19日
0.3.0 2019年7月30日
0.2.1 2017年10月3日
0.0.2 2017年7月23日

#5 in #untrusted

Download history 239/week @ 2024-04-08 190/week @ 2024-04-15 241/week @ 2024-04-22 186/week @ 2024-04-29 107/week @ 2024-05-06 111/week @ 2024-05-13 109/week @ 2024-05-20 136/week @ 2024-05-27 127/week @ 2024-06-03 58/week @ 2024-06-10 94/week @ 2024-06-17 48/week @ 2024-06-24 165/week @ 2024-07-01 57/week @ 2024-07-08 77/week @ 2024-07-15 87/week @ 2024-07-22

每月388次下载

ISC 许可证

24KB
320

untrustended Crates.ioCircleCI

Untrustended 是从未授权输入解析值的原语集合。它建立在 untrustedReader::read_byte()Reader::read_bytes() 之上。

在使用此库之前,请先查阅 untrusted 的文档。

示例

请参阅 untrustended 文档 中的使用示例。

许可证

请参阅 LICENSE.txt。ISC 许可证。


lib.rs:

Untrustended - Untrusted 扩展。

Untrustended 是从未授权输入解析值的原语集合。它建立在 untrustedReader::read_byte()Reader::read_bytes() 之上。

在使用此库之前,请先查阅 untrusted 的文档。

要使用此库提供的新的方法

use untrustended::ReaderExt;

然后像平常一样构建一个 Reader 并享受它。

示例

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");
}

依赖项

~28KB