4 releases (2 breaking)
| 0.3.0 | Oct 20, 2024 |
|---|---|
| 0.2.0 | Aug 29, 2024 |
| 0.1.1 | May 16, 2024 |
| 0.1.0 | May 16, 2024 |
#147 in Value formatting
70,423 downloads per month
43KB
839 lines
hex_str
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;
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'sStandarddistribution, which enables random generation ofHexStringN's directly.
Using serde feature:
use hex_str::HexString;
use serde::{Deserialize, Serialize};
#[derive(Deserialize, Serialize)]
struct Example {
md5: HexString<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:
use hex_str::HexString;
let _: HexString<16> = rand::random();
Dependencies
~170–710KB
~16K SLoC