Expand description
Handle and parse hex strings of constant and variable lengths
§Example:
Example hex string, an md5 of an empty file:
d41d8cd98f00b204e9800998ecf8427e
use hex_str::{HexString, HexStringN};
let s = "d41d8cd98f00b204e9800998ecf8427e";
// constant length, encoded in the type system
let u = HexStringN::<16>::try_parse(s).unwrap();
assert_eq!(u, "d41d8cd98f00b204e9800998ecf8427e");
// variable length
let v = HexString::try_parse(s).unwrap();
assert_eq!(v, "d41d8cd98f00b204e9800998ecf8427e");
§Feature flags:
serde
- adds the ability to serialize, and deserializeHexString
’s, andHexStringN
’s usingserde
.rand
- adds implementation ofrand
’sStandard
distribution, which enables random generation ofHexStringN
’s directly.
§Using serde
feature:
#[cfg(feature = "serde")]
{
use hex_str::HexStringN;
use serde::{Deserialize, Serialize};
#[derive(Deserialize, Serialize)]
struct Example {
md5: HexStringN<16>,
}
let s = r#"
{
"md5": "d41d8cd98f00b204e9800998ecf8427e"
}
"#;
let example: Example = serde_json::from_str(s).unwrap();
assert_eq!(example.md5, "d41d8cd98f00b204e9800998ecf8427e");
serde_json::to_string(&example).unwrap();
}
§Using rand
feature:
#[cfg(feature = "rand")]
{
use hex_str::HexStringN;
let _: HexStringN<16> = rand::random();
}
Structs§
- HexString
- A hex string of variable length
- HexStringN
- A hex string of constant length
Enums§
- HexString
Error - An error that may occur when parsing hex strings
- HexStringN
Error - An error that may occur when parsing hex strings