photon-ui 0.2.0

Blazing fast minimal TUI
Documentation
use photon_ui::image::{
    delete_kitty_image,
    encode_iterm2,
    encode_kitty,
    get_gif_dimensions,
    get_jpeg_dimensions,
    get_png_dimensions,
};

#[test]
fn kitty_encode_produces_sequence() {
    let data = b"fake_image_data";
    let seq = encode_kitty(1, data, "image/png");
    assert!(seq.contains("_G"));
}

#[test]
fn iterm2_encode_produces_sequence() {
    let data = b"fake_image_data";
    let seq = encode_iterm2(data, "image/png");
    assert!(seq.contains("1337"));
}

#[test]
fn delete_kitty_produces_sequence() {
    let seq = delete_kitty_image(42);
    assert!(seq.contains("42"));
}

#[test]
fn png_dimensions_parse() {
    let mut data = vec![0x89, 0x50, 0x4e, 0x47, 0x0d, 0x0a, 0x1a, 0x0a];
    data.extend_from_slice(&[0; 8]);
    data.extend_from_slice(&100u32.to_be_bytes());
    data.extend_from_slice(&200u32.to_be_bytes());
    assert_eq!(get_png_dimensions(&data), Some((100, 200)));
}

#[test]
fn gif_dimensions_parse() {
    let mut data = b"GIF89a".to_vec();
    data.extend_from_slice(&100u16.to_le_bytes());
    data.extend_from_slice(&50u16.to_le_bytes());
    assert_eq!(get_gif_dimensions(&data), Some((100, 50)));
}