axon_tools/
hex.rs

1use crate::Error;
2
3pub fn hex_encode<T: AsRef<[u8]>>(src: T) -> String {
4    faster_hex::hex_string(src.as_ref())
5}
6
7pub fn hex_decode(src: &str) -> Result<Vec<u8>, Error> {
8    if src.is_empty() {
9        return Ok(Vec::new());
10    }
11
12    let src = if src.starts_with("0x") {
13        src.split_at(2).1
14    } else {
15        src
16    };
17
18    let src = src.as_bytes();
19    let mut ret = vec![0u8; src.len() / 2];
20    faster_hex::hex_decode(src, &mut ret)?;
21
22    Ok(ret)
23}