Skip to main content

read_all_with_limit

Function read_all_with_limit 

Source
pub fn read_all_with_limit(
    reader: impl Read,
    max_bytes: usize,
) -> Result<Vec<u8>>
Expand description

Reads all available bytes from a reader while enforcing a hard limit.

Examples found in repository?
examples/process_file.rs (line 13)
7fn main() -> std::io::Result<()> {
8    let Some(path) = std::env::args().nth(1) else {
9        eprintln!("usage: process_file <packets.aprs>");
10        std::process::exit(2);
11    };
12
13    let input = read_all_with_limit(File::open(path)?, DEFAULT_TRANSPORT_READ_LIMIT)?;
14    let mut engine = Engine::new(Policy::strict());
15
16    for packet_bytes in LineTransport::new(&input).packets() {
17        match engine.process(packet_bytes) {
18            EngineResult::Accepted { packet } => println!("{}", packet.to_json()),
19            EngineResult::Rejected { reason, .. } => eprintln!("rejected: {}", reason.code()),
20            EngineResult::ParseError(error) => eprintln!("malformed: {}", error.code()),
21        }
22    }
23
24    Ok(())
25}