basisu 0.1.0

A bit-exact pure-Rust Basis Universal texture transcoder (.ktx2 and .basis).
Documentation
//! Bulk BISE decode tables for the physical ASTC block unpack: the trit and
//! quint block decode tables from the ASTC specification (18.12 Integer
//! Sequence Encoding), flattened for direct indexing.

/// Decoded trit values for each 8-bit packed T field: `[T]` yields the five
/// trits of one BISE trit block.
pub static ASTC_TRIT_DECODE: [[u8; 5]; 256] = [
    [0, 0, 0, 0, 0],
    [1, 0, 0, 0, 0],
    [2, 0, 0, 0, 0],
    [0, 0, 2, 0, 0],
    [0, 1, 0, 0, 0],
    [1, 1, 0, 0, 0],
    [2, 1, 0, 0, 0],
    [1, 0, 2, 0, 0],
    [0, 2, 0, 0, 0],
    [1, 2, 0, 0, 0],
    [2, 2, 0, 0, 0],
    [2, 0, 2, 0, 0],
    [0, 2, 2, 0, 0],
    [1, 2, 2, 0, 0],
    [2, 2, 2, 0, 0],
    [2, 0, 2, 0, 0],
    [0, 0, 1, 0, 0],
    [1, 0, 1, 0, 0],
    [2, 0, 1, 0, 0],
    [0, 1, 2, 0, 0],
    [0, 1, 1, 0, 0],
    [1, 1, 1, 0, 0],
    [2, 1, 1, 0, 0],
    [1, 1, 2, 0, 0],
    [0, 2, 1, 0, 0],
    [1, 2, 1, 0, 0],
    [2, 2, 1, 0, 0],
    [2, 1, 2, 0, 0],
    [0, 0, 0, 2, 2],
    [1, 0, 0, 2, 2],
    [2, 0, 0, 2, 2],
    [0, 0, 2, 2, 2],
    [0, 0, 0, 1, 0],
    [1, 0, 0, 1, 0],
    [2, 0, 0, 1, 0],
    [0, 0, 2, 1, 0],
    [0, 1, 0, 1, 0],
    [1, 1, 0, 1, 0],
    [2, 1, 0, 1, 0],
    [1, 0, 2, 1, 0],
    [0, 2, 0, 1, 0],
    [1, 2, 0, 1, 0],
    [2, 2, 0, 1, 0],
    [2, 0, 2, 1, 0],
    [0, 2, 2, 1, 0],
    [1, 2, 2, 1, 0],
    [2, 2, 2, 1, 0],
    [2, 0, 2, 1, 0],
    [0, 0, 1, 1, 0],
    [1, 0, 1, 1, 0],
    [2, 0, 1, 1, 0],
    [0, 1, 2, 1, 0],
    [0, 1, 1, 1, 0],
    [1, 1, 1, 1, 0],
    [2, 1, 1, 1, 0],
    [1, 1, 2, 1, 0],
    [0, 2, 1, 1, 0],
    [1, 2, 1, 1, 0],
    [2, 2, 1, 1, 0],
    [2, 1, 2, 1, 0],
    [0, 1, 0, 2, 2],
    [1, 1, 0, 2, 2],
    [2, 1, 0, 2, 2],
    [1, 0, 2, 2, 2],
    [0, 0, 0, 2, 0],
    [1, 0, 0, 2, 0],
    [2, 0, 0, 2, 0],
    [0, 0, 2, 2, 0],
    [0, 1, 0, 2, 0],
    [1, 1, 0, 2, 0],
    [2, 1, 0, 2, 0],
    [1, 0, 2, 2, 0],
    [0, 2, 0, 2, 0],
    [1, 2, 0, 2, 0],
    [2, 2, 0, 2, 0],
    [2, 0, 2, 2, 0],
    [0, 2, 2, 2, 0],
    [1, 2, 2, 2, 0],
    [2, 2, 2, 2, 0],
    [2, 0, 2, 2, 0],
    [0, 0, 1, 2, 0],
    [1, 0, 1, 2, 0],
    [2, 0, 1, 2, 0],
    [0, 1, 2, 2, 0],
    [0, 1, 1, 2, 0],
    [1, 1, 1, 2, 0],
    [2, 1, 1, 2, 0],
    [1, 1, 2, 2, 0],
    [0, 2, 1, 2, 0],
    [1, 2, 1, 2, 0],
    [2, 2, 1, 2, 0],
    [2, 1, 2, 2, 0],
    [0, 2, 0, 2, 2],
    [1, 2, 0, 2, 2],
    [2, 2, 0, 2, 2],
    [2, 0, 2, 2, 2],
    [0, 0, 0, 0, 2],
    [1, 0, 0, 0, 2],
    [2, 0, 0, 0, 2],
    [0, 0, 2, 0, 2],
    [0, 1, 0, 0, 2],
    [1, 1, 0, 0, 2],
    [2, 1, 0, 0, 2],
    [1, 0, 2, 0, 2],
    [0, 2, 0, 0, 2],
    [1, 2, 0, 0, 2],
    [2, 2, 0, 0, 2],
    [2, 0, 2, 0, 2],
    [0, 2, 2, 0, 2],
    [1, 2, 2, 0, 2],
    [2, 2, 2, 0, 2],
    [2, 0, 2, 0, 2],
    [0, 0, 1, 0, 2],
    [1, 0, 1, 0, 2],
    [2, 0, 1, 0, 2],
    [0, 1, 2, 0, 2],
    [0, 1, 1, 0, 2],
    [1, 1, 1, 0, 2],
    [2, 1, 1, 0, 2],
    [1, 1, 2, 0, 2],
    [0, 2, 1, 0, 2],
    [1, 2, 1, 0, 2],
    [2, 2, 1, 0, 2],
    [2, 1, 2, 0, 2],
    [0, 2, 2, 2, 2],
    [1, 2, 2, 2, 2],
    [2, 2, 2, 2, 2],
    [2, 0, 2, 2, 2],
    [0, 0, 0, 0, 1],
    [1, 0, 0, 0, 1],
    [2, 0, 0, 0, 1],
    [0, 0, 2, 0, 1],
    [0, 1, 0, 0, 1],
    [1, 1, 0, 0, 1],
    [2, 1, 0, 0, 1],
    [1, 0, 2, 0, 1],
    [0, 2, 0, 0, 1],
    [1, 2, 0, 0, 1],
    [2, 2, 0, 0, 1],
    [2, 0, 2, 0, 1],
    [0, 2, 2, 0, 1],
    [1, 2, 2, 0, 1],
    [2, 2, 2, 0, 1],
    [2, 0, 2, 0, 1],
    [0, 0, 1, 0, 1],
    [1, 0, 1, 0, 1],
    [2, 0, 1, 0, 1],
    [0, 1, 2, 0, 1],
    [0, 1, 1, 0, 1],
    [1, 1, 1, 0, 1],
    [2, 1, 1, 0, 1],
    [1, 1, 2, 0, 1],
    [0, 2, 1, 0, 1],
    [1, 2, 1, 0, 1],
    [2, 2, 1, 0, 1],
    [2, 1, 2, 0, 1],
    [0, 0, 1, 2, 2],
    [1, 0, 1, 2, 2],
    [2, 0, 1, 2, 2],
    [0, 1, 2, 2, 2],
    [0, 0, 0, 1, 1],
    [1, 0, 0, 1, 1],
    [2, 0, 0, 1, 1],
    [0, 0, 2, 1, 1],
    [0, 1, 0, 1, 1],
    [1, 1, 0, 1, 1],
    [2, 1, 0, 1, 1],
    [1, 0, 2, 1, 1],
    [0, 2, 0, 1, 1],
    [1, 2, 0, 1, 1],
    [2, 2, 0, 1, 1],
    [2, 0, 2, 1, 1],
    [0, 2, 2, 1, 1],
    [1, 2, 2, 1, 1],
    [2, 2, 2, 1, 1],
    [2, 0, 2, 1, 1],
    [0, 0, 1, 1, 1],
    [1, 0, 1, 1, 1],
    [2, 0, 1, 1, 1],
    [0, 1, 2, 1, 1],
    [0, 1, 1, 1, 1],
    [1, 1, 1, 1, 1],
    [2, 1, 1, 1, 1],
    [1, 1, 2, 1, 1],
    [0, 2, 1, 1, 1],
    [1, 2, 1, 1, 1],
    [2, 2, 1, 1, 1],
    [2, 1, 2, 1, 1],
    [0, 1, 1, 2, 2],
    [1, 1, 1, 2, 2],
    [2, 1, 1, 2, 2],
    [1, 1, 2, 2, 2],
    [0, 0, 0, 2, 1],
    [1, 0, 0, 2, 1],
    [2, 0, 0, 2, 1],
    [0, 0, 2, 2, 1],
    [0, 1, 0, 2, 1],
    [1, 1, 0, 2, 1],
    [2, 1, 0, 2, 1],
    [1, 0, 2, 2, 1],
    [0, 2, 0, 2, 1],
    [1, 2, 0, 2, 1],
    [2, 2, 0, 2, 1],
    [2, 0, 2, 2, 1],
    [0, 2, 2, 2, 1],
    [1, 2, 2, 2, 1],
    [2, 2, 2, 2, 1],
    [2, 0, 2, 2, 1],
    [0, 0, 1, 2, 1],
    [1, 0, 1, 2, 1],
    [2, 0, 1, 2, 1],
    [0, 1, 2, 2, 1],
    [0, 1, 1, 2, 1],
    [1, 1, 1, 2, 1],
    [2, 1, 1, 2, 1],
    [1, 1, 2, 2, 1],
    [0, 2, 1, 2, 1],
    [1, 2, 1, 2, 1],
    [2, 2, 1, 2, 1],
    [2, 1, 2, 2, 1],
    [0, 2, 1, 2, 2],
    [1, 2, 1, 2, 2],
    [2, 2, 1, 2, 2],
    [2, 1, 2, 2, 2],
    [0, 0, 0, 1, 2],
    [1, 0, 0, 1, 2],
    [2, 0, 0, 1, 2],
    [0, 0, 2, 1, 2],
    [0, 1, 0, 1, 2],
    [1, 1, 0, 1, 2],
    [2, 1, 0, 1, 2],
    [1, 0, 2, 1, 2],
    [0, 2, 0, 1, 2],
    [1, 2, 0, 1, 2],
    [2, 2, 0, 1, 2],
    [2, 0, 2, 1, 2],
    [0, 2, 2, 1, 2],
    [1, 2, 2, 1, 2],
    [2, 2, 2, 1, 2],
    [2, 0, 2, 1, 2],
    [0, 0, 1, 1, 2],
    [1, 0, 1, 1, 2],
    [2, 0, 1, 1, 2],
    [0, 1, 2, 1, 2],
    [0, 1, 1, 1, 2],
    [1, 1, 1, 1, 2],
    [2, 1, 1, 1, 2],
    [1, 1, 2, 1, 2],
    [0, 2, 1, 1, 2],
    [1, 2, 1, 1, 2],
    [2, 2, 1, 1, 2],
    [2, 1, 2, 1, 2],
    [0, 2, 2, 2, 2],
    [1, 2, 2, 2, 2],
    [2, 2, 2, 2, 2],
    [2, 1, 2, 2, 2],
];

/// Decoded quint values for each 7-bit packed T field: `[T]` yields the three
/// quints of one BISE quint block.
pub static ASTC_QUINT_DECODE: [[u8; 3]; 128] = [
    [0, 0, 0],
    [1, 0, 0],
    [2, 0, 0],
    [3, 0, 0],
    [4, 0, 0],
    [0, 4, 0],
    [4, 4, 0],
    [4, 4, 4],
    [0, 1, 0],
    [1, 1, 0],
    [2, 1, 0],
    [3, 1, 0],
    [4, 1, 0],
    [1, 4, 0],
    [4, 4, 1],
    [4, 4, 4],
    [0, 2, 0],
    [1, 2, 0],
    [2, 2, 0],
    [3, 2, 0],
    [4, 2, 0],
    [2, 4, 0],
    [4, 4, 2],
    [4, 4, 4],
    [0, 3, 0],
    [1, 3, 0],
    [2, 3, 0],
    [3, 3, 0],
    [4, 3, 0],
    [3, 4, 0],
    [4, 4, 3],
    [4, 4, 4],
    [0, 0, 1],
    [1, 0, 1],
    [2, 0, 1],
    [3, 0, 1],
    [4, 0, 1],
    [0, 4, 1],
    [4, 0, 4],
    [0, 4, 4],
    [0, 1, 1],
    [1, 1, 1],
    [2, 1, 1],
    [3, 1, 1],
    [4, 1, 1],
    [1, 4, 1],
    [4, 1, 4],
    [1, 4, 4],
    [0, 2, 1],
    [1, 2, 1],
    [2, 2, 1],
    [3, 2, 1],
    [4, 2, 1],
    [2, 4, 1],
    [4, 2, 4],
    [2, 4, 4],
    [0, 3, 1],
    [1, 3, 1],
    [2, 3, 1],
    [3, 3, 1],
    [4, 3, 1],
    [3, 4, 1],
    [4, 3, 4],
    [3, 4, 4],
    [0, 0, 2],
    [1, 0, 2],
    [2, 0, 2],
    [3, 0, 2],
    [4, 0, 2],
    [0, 4, 2],
    [2, 0, 4],
    [3, 0, 4],
    [0, 1, 2],
    [1, 1, 2],
    [2, 1, 2],
    [3, 1, 2],
    [4, 1, 2],
    [1, 4, 2],
    [2, 1, 4],
    [3, 1, 4],
    [0, 2, 2],
    [1, 2, 2],
    [2, 2, 2],
    [3, 2, 2],
    [4, 2, 2],
    [2, 4, 2],
    [2, 2, 4],
    [3, 2, 4],
    [0, 3, 2],
    [1, 3, 2],
    [2, 3, 2],
    [3, 3, 2],
    [4, 3, 2],
    [3, 4, 2],
    [2, 3, 4],
    [3, 3, 4],
    [0, 0, 3],
    [1, 0, 3],
    [2, 0, 3],
    [3, 0, 3],
    [4, 0, 3],
    [0, 4, 3],
    [0, 0, 4],
    [1, 0, 4],
    [0, 1, 3],
    [1, 1, 3],
    [2, 1, 3],
    [3, 1, 3],
    [4, 1, 3],
    [1, 4, 3],
    [0, 1, 4],
    [1, 1, 4],
    [0, 2, 3],
    [1, 2, 3],
    [2, 2, 3],
    [3, 2, 3],
    [4, 2, 3],
    [2, 4, 3],
    [0, 2, 4],
    [1, 2, 4],
    [0, 3, 3],
    [1, 3, 3],
    [2, 3, 3],
    [3, 3, 3],
    [4, 3, 3],
    [3, 4, 3],
    [0, 3, 4],
    [1, 3, 4],
];