考虑以数据段组织的二进制文件,其中前 4 个字节是段类型,接下来的 4 个字节是段长度,其余字节是原始数据。我可以解析第一段,如:
named!(my_parser<&[u8], SomethingParsed>, do_parse!(
segment_type: take!(4) >>
segment_length: be_u32 >>
segment_data: take!(segment_length) >>
(SomethingParsed {segments: ?})
))
如何重复该步骤直到到达文件末尾?