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}