hex_wrapper/lib.rs
1//! `hex-wrapper` provides N-bit unsigned hexadecimal numbers.
2//!
3//! Roughly speaking, Hex converts between `uN` and (lowercase) [`String`] hexadecimally.
4//!
5//!
6//! # Features
7//!
8//! Defaults are all off.
9//!
10//! - `rand`: Enables random constructors `HexN::rand()` and `HexN::with_rng()`.
11//! - `serde`: Enables conversion used in [`serde`] (e.g. for json).
12//! - `db`: Enables implementations of [`diesel`] v2.2 traits.
13//!
14//!
15//! # Traits
16//!
17//! Each hex type implements the following traits:
18//!
19//! - [`Default`] (only for `HexN`, not for `NonZeroHexN`);
20//! - [`FromStr`](std::str::FromStr`);
21//! - [`TryFrom<&str>`](`std::convert::TryFrom`);
22//! - [`Debug`](`std::fmt::Debug`);
23//! - [`Display`](`std::fmt::Display`) (hence [`ToString`] automatically);
24//! - [`Into<String>`](`Into`) and conversely [`String`] implements [`From<HexN>`](`From`);
25//! - [`Serialize`](`serde::Serialize`) and [`Deserialize`](`serde::Deserialize`) (only when the
26//! `serde` feature enabled).
27//! - [`ToSql`](`diesel::serialize::ToSql`), [`FromSql`](`diesel::deserialize::FromSql`),
28//! [`Queryable`](`diesel::deserialize::Queryable`) and [`AsExpression`](`diesel::expression::AsExpression`)
29//! (only when the `db` feature enabled).
30
31#[macro_use]
32mod macros;
33
34mod zeroable;
35pub use zeroable::*;
36
37mod nonzero;
38pub use nonzero::*;