dangerous 0.10.0

Safely and explicitly parse untrusted / dangerous data
Documentation
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
use anyhow::Context;
use dangerous::{BytesReader, Error, Expected, Input};

fn main() {
    dangerous::input(b"hello")
        .read_all(parse::<Expected<'_>>)
        .map_err(|err| anyhow::Error::msg(err.to_string()))
        .context("my anyhow context 1")
        .context("my anyhow context 2")
        .unwrap();
}

fn parse<'i, E>(r: &mut BytesReader<'i, E>) -> Result<(), E>
where
    E: Error<'i>,
{
    r.context("my value", |r| r.consume(b"world"))
}