Files
Alfis/src/utils.rs
T

33 lines
793 B
Rust
Raw Normal View History

use std::num;
2019-12-01 22:45:25 +01:00
/// Convert bytes array to HEX format
pub fn to_hex(buf: &[u8]) -> String {
let mut result = String::new();
for x in buf.iter() {
result.push_str(&format!("{:01$X}", x, 2));
}
result
}
pub fn from_hex(string: &str) -> Result<Vec<u8>, num::ParseIntError> {
split_n(&string.trim()[..], 2)
.iter()
.map(|b| u8::from_str_radix(b, 16))
.collect()
}
fn split_n(s: &str, n: usize) -> Vec<&str> {
(0..=(s.len() - n + 1) / 2)
.map(|i| &s[2 * i..2 * i + n])
.collect()
}
2019-12-01 22:45:25 +01:00
/// There is no default PartialEq implementation for arrays > 32 in size
pub fn same_hash(left: &[u8], right: &[u8]) -> bool {
for (x, y) in left.iter().zip(right) {
if x != y {
return false;
}
}
true
}