1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
use super::file::*;
use assembly_core::nom::{
number::complete::{le_u16, le_u32},
named, do_parse, tag
};
named!(pub parse_chunk_version<ChunkVersion>,
do_parse!(
header: le_u16 >>
data: le_u16 >>
(ChunkVersion{header, data})
)
);
named!(pub parse_chunk_header<ChunkHeader>,
do_parse!(
tag!("CHNK") >>
id: le_u32 >>
version: parse_chunk_version >>
size: le_u32 >>
offset: le_u32 >>
(ChunkHeader{id, version, size, offset})
)
);
named!(pub parse_file_meta_chunk_data<FileMetaChunkData>,
do_parse!(
version: le_u32 >>
revision: le_u32 >>
chunk_2000_offset: le_u32 >>
chunk_2001_offset: le_u32 >>
chunk_2002_offset: le_u32 >>
(FileMetaChunkData{
version, revision,
chunk_2000_offset, chunk_2001_offset, chunk_2002_offset
})
)
);