pub const MAGIC: &[u8] = b"INTERQUAKEMODEL\0"; pub mod consts { use iota::iota; iota! { pub const VERSION: usize = iota; , FILESIZE , FLAGS , NUM_TEXT , OFS_TEXT , NUM_MESHES , OFS_MESHES , NUM_VERTEXARRAYS , NUM_VERTEXES , OFS_VERTEXARRAYS , NUM_TRIANGLES , OFS_TRIANGLES , OFS_ADJACENCY , NUM_JOINTS , OFS_JOINTS , NUM_POSES , OFS_POSES , NUM_ANIMS , OFS_ANIMS , NUM_FRAMES , NUM_FRAMECHANNELS , OFS_FRAMES , OFS_BOUNDS , NUM_COMMENT , OFS_COMMENT , NUM_EXTENSIONS , OFS_EXTENSIONS } iota! { pub const VA_TYPE: usize = iota; , VA_FLAGS , VA_FORMAT , VA_SIZE , VA_OFFSET , VA_FIELD_COUNT } iota! { pub const MESH_NAME: usize = iota; , MESH_MATERIAL , MESH_FIRST_VERTEX , MESH_NUM_VERTEXES , MESH_FIRST_TRIANGLE , MESH_NUM_TRIANGLES , MESH_FIELD_COUNT } } pub mod types { iota! { pub const POSITION: usize = iota; , TEXCOORD , NORMAL , TANGENT , BLENDINDEXES , BLENDWEIGHTS , COLOR } pub const CUSTOM: usize = 0x10; } pub mod formats { iota! { pub const BYTE: u32 = iota; , UBYTE , SHORT , USHORT , INT , UINT , HALF , FLOAT , DOUBLE } }