Repository navigation
Releases: 52/c32
Releases · 52/c32
Release list
v0.6.1
v0.6.0
v0.5.3
v0.5.2
v0.5.1
v0.5.0
Changes
Full Changelog: v0.4.0...v0.5.0
Features
The new Buffer type can be used to encode and decode Crockford Base32 in constant contexts:
use c32::Buffer;
const INPUT: [u8; 3] = [42, 42, 42];
const ENCODED: Buffer<5> = Buffer::encode(&INPUT);
assert_eq!(ENCODED.as_str(), "2MAHA");
const DECODED: Buffer<5> = Buffer::decode(b"2MAHA");
assert_eq!(DECODED.as_bytes(), [42, 42, 42]);v0.4.0
Changes
Full Changelog: v0.3.0...v0.4.0
Features
The new check feature provides methods for encoding data with SHA256-based checksum verification.
std or alloc
// encoding...
let bytes = b"usque ad finem";
let encoded = c32::encode_check(bytes, 22)?;
assert_eq!(encoded, "P7AWVHENJJ0RB441K6JVK5DNJ7J3V5");// decoding...
let encoded = "P7AWVHENJJ0RB441K6JVK5DNJ7J3V5";
let (version, decoded) = c32::decode_check(encoded)?;
assert_eq!(decoded, b"usque ad finem");
assert_eq!(version, 22);... or with #![no_std]
// encoding...
let bytes = b"usque ad finem";
let mut buffer = [0; 32];
let written = c32::encode_check_into(bytes, 22, &mut buffer)?;
let encoded = &buffer[..written];
assert_eq!(encoded, b"P7AWVHENJJ0RB441K6JVK5DNJ7J3V5");// decoding...
let encoded = b"P7AWVHENJJ0RB441K6JVK5DNJ7J3V5";
let mut buffer = [0; 32];
let (version, written) = c32::decode_check_into(encoded, &mut buffer)?;
let decoded = &buffer[..written];
assert_eq!(decoded, b"usque ad finem");
assert_eq!(version, 22);