bytify 0.4.1

A simple macro that can write given const-expr values into a continuous byte array.
Documentation
use bytify::{bytify_be, bytify_le};

#[test]
fn literals() {
    assert_eq!(bytify_le!(), []);
    assert_eq!(bytify_le!(true), [1]);
    assert_eq!(bytify_le!(false), [0]);
    assert_eq!(bytify_le!('A'), [0x41]);
    assert_eq!(bytify_le!('Я'), [0xD0, 0xAF]);
    assert_eq!(bytify_le!('🤡'), [0xF0, 0x9F, 0xA4, 0xA1]);
    assert_eq!(bytify_le!(10), [0x0A, 0x00, 0x00, 0x00]);
    assert_eq!(bytify_le!(-1), [0xFF, 0xFF, 0xFF, 0xFF]);
    assert_eq!(bytify_le!(10u8), [0x0A]);
    assert_eq!(bytify_le!(-1i8), [0xFF]);
    assert_eq!(bytify_le!(10u16), [0x0A, 0x00]);
    assert_eq!(bytify_le!(-1i16), [0xFF, 0xFF]);
    assert_eq!(bytify_le!(10u32), [0x0A, 0x00, 0x00, 0x00]);
    assert_eq!(bytify_le!(-1i32), [0xFF, 0xFF, 0xFF, 0xFF]);
    assert_eq!(bytify_le!(10u64), [0x0A, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00]);
    assert_eq!(bytify_le!(-1i64), [0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF]);
    assert_eq!(
        bytify_le!(10u128),
        [
            0x0A, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
            0x00, 0x00,
        ],
    );
    assert_eq!(
        bytify_le!(-1i128),
        [
            0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF,
            0xFF, 0xFF,
        ],
    );
    assert_eq!(bytify_le!(1.0), [0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xF0, 0x3F]);
    assert_eq!(bytify_le!(154.811f32), [0x9E, 0xCF, 0x1A, 0x43]);
    assert_eq!(bytify_le!(801.194f64), [0x64, 0x3B, 0xDF, 0x4F, 0x8D, 0x09, 0x89, 0x40]);
    assert_eq!(
        bytify_le!("Hello World"),
        [0x48, 0x65, 0x6C, 0x6C, 0x6F, 0x20, 0x57, 0x6F, 0x72, 0x6C, 0x64],
    );
    assert_eq!(
        bytify_le!("😍😀☹"),
        [0xF0, 0x9F, 0x98, 0x8D, 0xF0, 0x9F, 0x98, 0x80, 0xE2, 0x98, 0xB9],
    );
}

#[test]
fn decl() {
    bytify_le!(const HELLO: "Hello");
    assert_eq!(HELLO, *b"Hello");
    bytify_le!(const WORLD: "World");
    assert_eq!(WORLD, *b"World");
    bytify_le!(const HELLO_WORLD: HELLO, ' ', WORLD);
    assert_eq!(HELLO_WORLD, *b"Hello World");

    bytify_le!(static VERSION: "v", env!("CARGO_PKG_VERSION"));
    assert_eq!(VERSION, *b"v0.4.1");
}

#[test]
fn nesting() {
    assert_eq!(bytify_be!(bytify_le!()), []);
    assert_eq!(bytify_be!(0xCAFEu16, bytify_le!(0xBEBAu16)), [0xCA, 0xFE, 0xBA, 0xBE]);
}