ninres 0.0.2

Read commonly used Nintendo file formats.
Documentation
use crate::ByteOrderMask;

pub fn read_u16(file: &[u8], offset: usize, bom: ByteOrderMask) -> u16 {
    let from_bytes = match bom {
        ByteOrderMask::BigEndian => u16::from_be_bytes,
        ByteOrderMask::LittleEndian => u16::from_le_bytes,
    };
    from_bytes([file[offset], file[offset + 1]])
}

pub fn read_u32(file: &[u8], offset: usize, bom: ByteOrderMask) -> u32 {
    let from_bytes = match bom {
        ByteOrderMask::BigEndian => u32::from_be_bytes,
        ByteOrderMask::LittleEndian => u32::from_le_bytes,
    };
    from_bytes([
        file[offset],
        file[offset + 1],
        file[offset + 2],
        file[offset + 3],
    ])
}

pub fn read_i32(file: &[u8], offset: usize, bom: ByteOrderMask) -> i32 {
    let from_bytes = match bom {
        ByteOrderMask::BigEndian => i32::from_be_bytes,
        ByteOrderMask::LittleEndian => i32::from_le_bytes,
    };
    from_bytes([
        file[offset],
        file[offset + 1],
        file[offset + 2],
        file[offset + 3],
    ])
}