Crate data_encoding_macro[−][src]
Macros for data-encoding
This library provides macros to define compile-time byte arrays from encoded strings (using common bases like base64, base32, or hexadecimal, and also custom bases). It also provides a macro to define compile-time custom encodings to be used with the data-encoding crate at run-time.
Until rust-lang/cargo#7915 is fixed, you may
need to add the following to your .cargo/config.toml
to use this library in no-std or no-alloc
environments:
[unstable]
features = ["host_dep"]
Examples
You can define a compile-time byte slice from an encoded string literal:
const HELLO_SLICE: &'static [u8] = &data_encoding_macro::hexlower!("68656c6c6f"); const FOOBAR_SLICE: &'static [u8] = &data_encoding_macro::base64!("Zm9vYmFy");
You can also define a compile-time byte array from an encoded string literal:
data_encoding_macro::hexlower_array!("const HELLO" = "68656c6c6f"); data_encoding_macro::base64_array!("const FOOBAR" = "Zm9vYmFy");
You can define a compile-time custom encoding from its specification:
const HEX: data_encoding::Encoding = data_encoding_macro::new_encoding! { symbols: "0123456789abcdef", translate_from: "ABCDEF", translate_to: "abcdef", }; const BASE64: data_encoding::Encoding = data_encoding_macro::new_encoding! { symbols: "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/", padding: '=', };
Macros
base32 | |
base32_array | |
base32_dnscurve | |
base32_dnscurve_array | |
base32_dnssec | |
base32_dnssec_array | |
base32_nopad | |
base32_nopad_array | |
base32hex | |
base32hex_array | |
base32hex_nopad | |
base32hex_nopad_array | |
base64 | |
base64_array | |
base64_mime | |
base64_mime_array | |
base64_nopad | |
base64_nopad_array | |
base64url | |
base64url_array | |
base64url_nopad | |
base64url_nopad_array | |
decode_array | Defines a compile-time byte array by decoding a string literal |
decode_slice | Defines a compile-time byte slice by decoding a string literal |
hexlower | |
hexlower_array | |
hexlower_permissive | |
hexlower_permissive_array | |
hexupper | |
hexupper_array | |
hexupper_permissive | |
hexupper_permissive_array | |
new_encoding | Defines a compile-time custom encoding |