Crate data_encoding_macro[−][src]
Expand description
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.
Up to Rust 1.50, 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"]
From Rust 1.51, you may need to add the following to your Cargo.toml:
[package]
resolver = "2"
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 |