Mercurial > touhou
diff formats/src/th06/anm0.rs @ 774:d08eb4c9fce3
formats: Upgrade nom to version 8
| author | Link Mauve <linkmauve@linkmauve.fr> |
|---|---|
| date | Mon, 29 Sep 2025 11:10:15 +0000 |
| parents | 8a3b8e2ffa24 |
| children | 94033091458b |
line wrap: on
line diff
--- a/formats/src/th06/anm0.rs +++ b/formats/src/th06/anm0.rs @@ -2,9 +2,9 @@ use nom::{ IResult, + Parser, bytes::complete::{tag, take_while_m_n}, number::complete::{le_u8, le_u16, le_u32, le_i32, le_f32}, - sequence::tuple, multi::{many_m_n, many0}, }; use std::collections::BTreeMap; @@ -77,7 +77,7 @@ impl Anm0 { /// Parse a slice of bytes into an `Anm0` struct. pub fn from_slice(data: &[u8]) -> IResult<&[u8], Vec<Anm0>> { - many0(parse_anm0)(data) + many0(parse_anm0).parse(data) } /// TODO @@ -98,7 +98,7 @@ } fn parse_sprite(i: &[u8]) -> IResult<&[u8], Sprite> { - let (i, (index, x, y, width, height)) = tuple((le_u32, le_f32, le_f32, le_f32, le_f32))(i)?; + let (i, (index, x, y, width, height)) = (le_u32, le_f32, le_f32, le_f32, le_f32).parse(i)?; Ok((i, Sprite { index, x, @@ -175,17 +175,17 @@ let (i, (num_sprites, num_scripts, _, width, height, format, color_key, first_name_offset, _, second_name_offset, version, _, _texture_offset, has_data, _next_offset, _)) = - tuple((le_u32, le_u32, tag(b"\0\0\0\0"), le_u32, le_u32, le_u32, le_u32, le_u32, - tag(b"\0\0\0\0"), le_u32, le_u32, tag(b"\0\0\0\0"), le_u32, le_u32, le_u32, - tag(b"\0\0\0\0")))(input)?; + (le_u32, le_u32, tag(&b"\0\0\0\0"[..]), le_u32, le_u32, le_u32, le_u32, le_u32, + tag(&b"\0\0\0\0"[..]), le_u32, le_u32, tag(&b"\0\0\0\0"[..]), le_u32, le_u32, le_u32, + tag(&b"\0\0\0\0"[..])).parse(input)?; assert_eq!(version, 0); assert_eq!(has_data, 0); let num_sprites = num_sprites as usize; let num_scripts = num_scripts as usize; - let (i, sprite_offsets) = many_m_n(num_sprites, num_sprites, le_u32)(i)?; - let (_, script_offsets) = many_m_n(num_scripts, num_scripts, tuple((le_u32, le_u32)))(i)?; + let (i, sprite_offsets) = many_m_n(num_sprites, num_sprites, le_u32).parse(i)?; + let (_, script_offsets) = many_m_n(num_scripts, num_scripts, (le_u32, le_u32)).parse(i)?; let png_filename = if first_name_offset > 0 { if input.len() < first_name_offset as usize { @@ -233,7 +233,7 @@ let tell = input.len() - i.len(); instruction_offsets.push(tell - offset); // TODO: maybe check against the size of parsed data? - let (i2, (time, opcode, _size)) = tuple((le_u16, le_u8, le_u8))(i)?; + let (i2, (time, opcode, _size)) = (le_u16, le_u8, le_u8).parse(i)?; let (i2, instr) = parse_instruction_args(i2, opcode)?; instructions.push(Call { time, instr }); i = i2;
