Merge pull request #78 from arik-so/conservative-announcements
[rapid-gossip-sync-server] / src / hex_utils.rs
1 pub fn to_vec(hex: &str) -> Option<Vec<u8>> {
2     let mut out = Vec::with_capacity(hex.len() / 2);
3
4     let mut b = 0;
5     for (idx, c) in hex.as_bytes().iter().enumerate() {
6         b <<= 4;
7         match *c {
8             b'A'..=b'F' => b |= c - b'A' + 10,
9             b'a'..=b'f' => b |= c - b'a' + 10,
10             b'0'..=b'9' => b |= c - b'0',
11             _ => return None,
12         }
13         if (idx & 1) == 1 {
14             out.push(b);
15             b = 0;
16         }
17     }
18
19     Some(out)
20 }