vault 11.0.1

A parser for Company of Heroes replay files.
Documentation
use crate::data::chunks::header::Header;
use crate::data::chunks::Chunk;
use crate::data::chunks::Chunk::DataAuto;
use crate::data::{ParserResult, Span};
use nom::bytes::complete::take;
use nom::combinator::{cut, map, map_parser};
use nom::number::complete::le_u8;
use nom_tracable::tracable_parser;

#[derive(Debug)]
pub struct DataAutoChunk {
    pub automatch: bool,
}

impl DataAutoChunk {
    #[tracable_parser]
    pub fn parse(input: Span, header: Header) -> ParserResult<Chunk> {
        cut(map_parser(
            take(header.length),
            map(le_u8, |automatch| {
                DataAuto(DataAutoChunk {
                    automatch: automatch == 1,
                })
            }),
        ))(input)
    }
}