#convert-hex #hex #compile-time #literals

no-std dev hexlit

A zero-allocation no_std-compatible zero-cost way to convert hex-strings to byte-arrays at compile time

13 releases

0.5.5 Jul 10, 2022
0.5.3 Oct 5, 2021
0.5.1 Jul 10, 2021
0.5.0 Mar 25, 2021
0.3.2 Nov 30, 2020

#84 in Value formatting

Download history 948/week @ 2024-07-28 1122/week @ 2024-08-04 890/week @ 2024-08-11 1078/week @ 2024-08-18 1483/week @ 2024-08-25 1348/week @ 2024-09-01 1604/week @ 2024-09-08 1235/week @ 2024-09-15 1878/week @ 2024-09-22 997/week @ 2024-09-29 1510/week @ 2024-10-06 1217/week @ 2024-10-13 1326/week @ 2024-10-20 1539/week @ 2024-10-27 1514/week @ 2024-11-03 1008/week @ 2024-11-10

5,470 downloads per month
Used in 13 crates

MIT license

10KB
225 lines

Current Crates.io Version docs-rs MSRV 1.51+

hexlit

A zero-allocation no_std-compatible zero-cost way to convert hex-strings to byte-arrays at compile time.

To add to your Cargo.toml:

hexlit = "0.5.5"

Example

use hexlit::hex;

fn main() {
    const DATA: [u8; 4] = hex!("01020304");
    assert_eq!(DATA, [1, 2, 3, 4]);
    assert_eq!(hex!("0xDEADBEEF"), [0xDE, 0xAD, 0xBE, 0xEF]);
    assert_eq!(hex!("a1b2c3d4"), [0xA1, 0xB2, 0xC3, 0xD4]);
    assert_eq!(hex!("E5 E6 90 92"), [0xE5, 0xE6, 0x90, 0x92]);
    assert_eq!(hex!("0a0B0C0d"), [10, 11, 12, 13]);
    assert_eq!(hex!(1a 0_b 0C 0d), [0x1a, 11, 12, 13]);
    assert_eq!(hex!(0F 03|0B|0C|0d), [15, 3, 11, 12, 13]);
    assert_eq!(hex!(0A-0B-0C-0d), [10, 11, 12, 13]);
    assert_eq!(
        hex!(
            A1 B2
            C3
            D4
        ),
        [0xA1, 0xB2, 0xC3, 0xD4]
    );
}

No runtime deps