1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
mod decode;
mod encode;
pub use decode::{DecodeResult, Decoder, Frame, BasicInfo};
pub use encode::Encoder;

pub fn decode_memory(data: &[u8]) -> Result<DecodeResult, &'static str> {
    let decoder = Decoder::default();
    decoder.decode(&data)
}

pub fn check_signature(data: &[u8]) -> libjxl_sys::JxlSignature {
    unsafe { libjxl_sys::JxlSignatureCheck(data.as_ptr(), data.len()) }
}

pub fn encode_memory(data: &[u8], xsize: usize, ysize: usize) -> Result<Vec<u8>, &'static str> {
    let encoder = Encoder::default();
    encoder.encode(&data, xsize, ysize)
}