aseprite_loader/binary/
chunk_type.rs1use nom::combinator::map;
2use strum::FromRepr;
3
4use super::{errors::ParseResult, scalars::word};
5
6#[derive(FromRepr, Debug, Copy, Clone)]
7pub enum ChunkType {
8 Palette0004 = 0x0004,
9 Palette0011 = 0x0011,
10 Layer = 0x2004,
11 Cel = 0x2005,
12 CelExtra = 0x2006,
13 ColorProfile = 0x2007,
14 ExternalFile = 0x2008,
15 Mask = 0x2016,
16 Path = 0x2017,
17 Tags = 0x2018,
18 Palette = 0x2019,
19 UserData = 0x2020,
20 Slice = 0x2022,
21 Tileset = 0x2023,
22}
23
24pub fn parse_chunk_type(input: &[u8]) -> ParseResult<'_, Result<ChunkType, u16>> {
25 map(word, |n| ChunkType::from_repr(n.into()).ok_or(n))(input)
26}