7 unstable releases (3 breaking)
0.3.0 | Oct 30, 2024 |
---|---|
0.2.1 | May 23, 2024 |
0.2.0 | Feb 27, 2024 |
0.1.2 | May 14, 2024 |
0.0.1 | Apr 30, 2023 |
#144 in Encoding
506,414 downloads per month
Used in 1,040 crates
(32 directly)
81KB
1.5K
SLoC
Bitcoin Hexadecimal Library
General purpose hex encoding/decoding library with a conservative MSRV and dependency policy.
Minimum Supported Rust Version (MSRV)
This library should compile with almost any combination of features on Rust 1.63.0, however we
reserve the right to use features to guard compiler specific code so --all-features
may not work
using the MSRV toolchain.
Githooks
To assist devs in catching errors before running CI we provide some githooks. If you do not already have locally configured githooks you can use the ones in this repository by running, in the root directory of the repository:
git config --local core.hooksPath githooks/
Alternatively add symlinks in your .git/hooks
directory to any of the githooks we provide.
lib.rs
:
Hex encoding and decoding.
General purpose hex encoding/decoding library with a conservative MSRV and dependency policy.
Basic Usage
// In your manifest use the `package` key to improve import ergonomics.
// hex = { package = "hex-conservative", version = "*" }
use hex::prelude::*;
// Decode an arbitrary length hex string into a vector.
let v = Vec::from_hex("deadbeef").expect("valid hex digits");
// Or a known length hex string into a fixed size array.
let a = <[u8; 4]>::from_hex("deadbeef").expect("valid length and valid hex digits");
// We support `LowerHex` and `UpperHex` out of the box for `[u8]` slices.
println!("An array as lower hex: {:x}", a.as_hex());
// And for vecs since `Vec` derefs to byte slice.
println!("A vector as upper hex: {:X}", v.as_hex());
// Allocate a new string (also `to_upper_hex_string`).
let s = v.to_lower_hex_string();
// Please note, mixed case strings will still parse successfully but we only
// support displaying hex in a single case.
assert_eq!(
Vec::from_hex("dEaDbEeF").expect("valid mixed case hex digits"),
Vec::from_hex("deadbeef").expect("valid hex digits"),
);
Dependencies
~230KB