1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52
mod decode; mod encode; mod error; pub use crate::decode::{ hex_check_fallback, hex_check_sse, hex_decode, hex_decode_fallback, hex_decode_unchecked, }; pub use crate::encode::{hex_encode, hex_encode_fallback, hex_string, hex_to}; #[cfg(test)] mod tests { use crate::decode::hex_decode; use crate::encode::{hex_encode, hex_string}; use proptest::{proptest, proptest_helper}; use std::str; fn _test_hex_encode(s: &String) { let mut buffer = vec![0; s.as_bytes().len() * 2]; hex_encode(s.as_bytes(), &mut buffer).unwrap(); let encode = unsafe { str::from_utf8_unchecked(&buffer[..s.as_bytes().len() * 2]) }; let hex_string = hex_string(s.as_bytes()).unwrap(); assert_eq!(encode, hex::encode(s)); assert_eq!(hex_string, hex::encode(s)); } proptest! { #[test] fn test_hex_encode(ref s in ".*") { _test_hex_encode(s); } } fn _test_hex_decode(s: &String) { let len = s.as_bytes().len(); let mut dst = Vec::with_capacity(len); dst.resize(len, 0); let hex_string = hex_string(s.as_bytes()).unwrap(); hex_decode(hex_string.as_bytes(), &mut dst).unwrap(); assert_eq!(&dst[..], s.as_bytes()); } proptest! { #[test] fn test_hex_decode(ref s in ".+") { _test_hex_decode(s); } } }