Skip to main content

uor_addr/canonical/
mod.rs

1//! Canonical-form byte primitives — `no_std`, `no_alloc`,
2//! slice-in / slice-out.
3//!
4//! Every UOR-ADDR realization that touches a published canonical form
5//! routes through this module. The module is shaped to be liftable
6//! upstream as a `uor-prism` feature without surface churn — the
7//! signatures already match prism's `&[u8]` → `&mut [u8]` → `usize`
8//! discipline.
9//!
10//! # Modules
11//!
12//! - [`hex`] — lowercase-hex byte-emit. Produces the 64-byte ASCII
13//!   suffix [`crate::label::AddressLabel`] carries.
14//! - [`nfc`] — UAX #15 Unicode NFC normalizer. Streaming three-stage
15//!   decompose / canonical-reorder / compose. UCD tables vendored at
16//!   `nfc::tables` (version pinned in `nfc::UCD_VERSION`).
17//!
18//! Every public function in this module is `no_alloc` and `no_std`.
19//! No path through the module performs heap allocation, locks, or
20//! syscalls.
21
22pub mod hex;
23pub mod nfc;