c32
Rust implementation of Crockford's Base32 encoding scheme.
[]
= "0.3.0"
Usage
This crate provides two approaches for encoding/decoding:
// with `alloc` ...
// or 'no_std' ...
c32Rust implementation of Crockford's Base32 encoding scheme.
[dependencies]
c32 = "0.3.0"
This crate provides two approaches for encoding/decoding:
// with `alloc` ...
#[cfg(feature = "alloc")]
fn example_en_alloc() {
let bytes = b"usque ad finem";
let encoded = c32::encode(bytes);
assert_eq!(encoded, "1TQ6WBNCMG62S10CSMPWSBD");
}
#[cfg(feature = "alloc")]
fn example_de_alloc() {
let encoded = "1TQ6WBNCMG62S10CSMPWSBD";
let decoded = c32::decode(encoded).unwrap();
assert_eq!(decoded, b"usque ad finem");
}
// or 'no_std' ...
fn example_en_no_std() {
const bytes: &[u8; 14] = b"usque ad finem";
let mut buffer = [0; c32::encoded_len(bytes.len())];
let pos = c32::encode_into(bytes, &mut buffer).unwrap();
assert_eq!(&buffer[..pos], b"1TQ6WBNCMG62S10CSMPWSBD")
}
fn example_de_no_std() {
const bytes: &[u8; 23] = b"1TQ6WBNCMG62S10CSMPWSBD";
let mut buffer = [0; c32::decoded_len(bytes.len())];
let pos = c32::decode_into(bytes, &mut buffer).unwrap();
assert_eq!(&buffer[..pos], b"usque ad finem")
}