From 9c13d236d2229acaf4c7af1263d28946c13ff3d5 Mon Sep 17 00:00:00 2001 From: "Tobin C. Harding" Date: Mon, 12 Feb 2024 12:56:12 +1100 Subject: [PATCH 1/2] Implement FromHex for all array lengths Now we have const generics in our MSRV we can implement `FromHex` for all array lengths using `arrayvec::ArrayVec` which we allready depend on. This code is not optimised, there is almost certainly a better way but it my brain is being recalcitrant at the moment. Fix: #61 --- src/parse.rs | 58 +++++++++++++++------------------------------------- 1 file changed, 17 insertions(+), 41 deletions(-) diff --git a/src/parse.rs b/src/parse.rs index 56fbbcc..51aaed2 100644 --- a/src/parse.rs +++ b/src/parse.rs @@ -4,6 +4,8 @@ use core::{fmt, str}; +use arrayvec::ArrayVec; + #[cfg(all(feature = "alloc", not(feature = "std")))] use crate::alloc::vec::Vec; use crate::error::InvalidLengthError; @@ -41,51 +43,25 @@ impl FromHex for Vec { } } -macro_rules! impl_fromhex_array { - ($len:expr) => { - impl FromHex for [u8; $len] { - type Error = HexToArrayError; - - fn from_byte_iter(iter: I) -> Result - where - I: Iterator> - + ExactSizeIterator - + DoubleEndedIterator, - { - if iter.len() == $len { - let mut ret = [0; $len]; - for (n, byte) in iter.enumerate() { - ret[n] = byte?; - } - Ok(ret) - } else { - Err(InvalidLengthError { expected: 2 * $len, got: 2 * iter.len() }.into()) - } +impl FromHex for [u8; LEN] { + type Error = HexToArrayError; + + fn from_byte_iter(iter: I) -> Result + where + I: Iterator> + ExactSizeIterator + DoubleEndedIterator, + { + if iter.len() == LEN { + let mut ret = ArrayVec::::new(); + for byte in iter { + ret.push(byte?); } + Ok(ret.into_inner().expect("inner is full")) + } else { + Err(InvalidLengthError { expected: 2 * LEN, got: 2 * iter.len() }.into()) } - }; + } } -impl_fromhex_array!(2); -impl_fromhex_array!(4); -impl_fromhex_array!(6); -impl_fromhex_array!(8); -impl_fromhex_array!(10); -impl_fromhex_array!(12); -impl_fromhex_array!(14); -impl_fromhex_array!(16); -impl_fromhex_array!(20); -impl_fromhex_array!(24); -impl_fromhex_array!(28); -impl_fromhex_array!(32); -impl_fromhex_array!(33); -impl_fromhex_array!(64); -impl_fromhex_array!(65); -impl_fromhex_array!(128); -impl_fromhex_array!(256); -impl_fromhex_array!(384); -impl_fromhex_array!(512); - #[cfg(test)] mod tests { use super::*; From 45078e229d4c72d70fffebc1c4fbb9dd8af89691 Mon Sep 17 00:00:00 2001 From: "Tobin C. Harding" Date: Mon, 12 Feb 2024 13:08:05 +1100 Subject: [PATCH 2/2] Update API files --- api/all-features.txt | 60 ++----------------------------------- api/alloc.txt | 60 ++----------------------------------- api/core2.txt | 60 ++----------------------------------- api/default-features.txt | 60 ++----------------------------------- api/no-default-features.txt | 60 ++----------------------------------- 5 files changed, 15 insertions(+), 285 deletions(-) diff --git a/api/all-features.txt b/api/all-features.txt index 9c0eb9c..c2b41b1 100644 --- a/api/all-features.txt +++ b/api/all-features.txt @@ -36,25 +36,6 @@ impl core::panic::unwind_safe::RefUnwindSafe for hex_conservative::HexToBytesErr impl core::panic::unwind_safe::UnwindSafe for hex_conservative::Case impl core::panic::unwind_safe::UnwindSafe for hex_conservative::HexToArrayError impl core::panic::unwind_safe::UnwindSafe for hex_conservative::HexToBytesError -impl hex_conservative::parse::FromHex for [u8; 10] -impl hex_conservative::parse::FromHex for [u8; 128] -impl hex_conservative::parse::FromHex for [u8; 12] -impl hex_conservative::parse::FromHex for [u8; 14] -impl hex_conservative::parse::FromHex for [u8; 16] -impl hex_conservative::parse::FromHex for [u8; 20] -impl hex_conservative::parse::FromHex for [u8; 24] -impl hex_conservative::parse::FromHex for [u8; 256] -impl hex_conservative::parse::FromHex for [u8; 28] -impl hex_conservative::parse::FromHex for [u8; 2] -impl hex_conservative::parse::FromHex for [u8; 32] -impl hex_conservative::parse::FromHex for [u8; 33] -impl hex_conservative::parse::FromHex for [u8; 384] -impl hex_conservative::parse::FromHex for [u8; 4] -impl hex_conservative::parse::FromHex for [u8; 512] -impl hex_conservative::parse::FromHex for [u8; 64] -impl hex_conservative::parse::FromHex for [u8; 65] -impl hex_conservative::parse::FromHex for [u8; 6] -impl hex_conservative::parse::FromHex for [u8; 8] impl hex_conservative::parse::FromHex for alloc::vec::Vec impl<'a, const CAP: usize> core::marker::Send for hex_conservative::display::DisplayArray<'a, CAP> impl<'a, const CAP: usize> core::marker::Sync for hex_conservative::display::DisplayArray<'a, CAP> @@ -131,6 +112,7 @@ impl core::marker::Unpin for hex_conservative::buf_encoder::Bu impl core::panic::unwind_safe::RefUnwindSafe for hex_conservative::buf_encoder::BufEncoder impl core::panic::unwind_safe::UnwindSafe for hex_conservative::buf_encoder::BufEncoder impl hex_conservative::buf_encoder::BufEncoder +impl hex_conservative::parse::FromHex for [u8; LEN] pub enum hex_conservative::Case pub enum hex_conservative::HexToArrayError pub enum hex_conservative::HexToBytesError @@ -167,25 +149,7 @@ pub fn &'a [u8]::as_hex(self) -> Self::Display pub fn &'a [u8]::hex_reserve_suggestion(self) -> usize pub fn &'a alloc::vec::Vec::as_hex(self) -> Self::Display pub fn &'a alloc::vec::Vec::hex_reserve_suggestion(self) -> usize -pub fn [u8; 10]::from_byte_iter(iter: I) -> core::result::Result where I: core::iter::traits::iterator::Iterator> + core::iter::traits::exact_size::ExactSizeIterator + core::iter::traits::double_ended::DoubleEndedIterator -pub fn [u8; 128]::from_byte_iter(iter: I) -> core::result::Result where I: core::iter::traits::iterator::Iterator> + core::iter::traits::exact_size::ExactSizeIterator + core::iter::traits::double_ended::DoubleEndedIterator -pub fn [u8; 12]::from_byte_iter(iter: I) -> core::result::Result where I: core::iter::traits::iterator::Iterator> + core::iter::traits::exact_size::ExactSizeIterator + core::iter::traits::double_ended::DoubleEndedIterator -pub fn [u8; 14]::from_byte_iter(iter: I) -> core::result::Result where I: core::iter::traits::iterator::Iterator> + core::iter::traits::exact_size::ExactSizeIterator + core::iter::traits::double_ended::DoubleEndedIterator -pub fn [u8; 16]::from_byte_iter(iter: I) -> core::result::Result where I: core::iter::traits::iterator::Iterator> + core::iter::traits::exact_size::ExactSizeIterator + core::iter::traits::double_ended::DoubleEndedIterator -pub fn [u8; 20]::from_byte_iter(iter: I) -> core::result::Result where I: core::iter::traits::iterator::Iterator> + core::iter::traits::exact_size::ExactSizeIterator + core::iter::traits::double_ended::DoubleEndedIterator -pub fn [u8; 24]::from_byte_iter(iter: I) -> core::result::Result where I: core::iter::traits::iterator::Iterator> + core::iter::traits::exact_size::ExactSizeIterator + core::iter::traits::double_ended::DoubleEndedIterator -pub fn [u8; 256]::from_byte_iter(iter: I) -> core::result::Result where I: core::iter::traits::iterator::Iterator> + core::iter::traits::exact_size::ExactSizeIterator + core::iter::traits::double_ended::DoubleEndedIterator -pub fn [u8; 28]::from_byte_iter(iter: I) -> core::result::Result where I: core::iter::traits::iterator::Iterator> + core::iter::traits::exact_size::ExactSizeIterator + core::iter::traits::double_ended::DoubleEndedIterator -pub fn [u8; 2]::from_byte_iter(iter: I) -> core::result::Result where I: core::iter::traits::iterator::Iterator> + core::iter::traits::exact_size::ExactSizeIterator + core::iter::traits::double_ended::DoubleEndedIterator -pub fn [u8; 32]::from_byte_iter(iter: I) -> core::result::Result where I: core::iter::traits::iterator::Iterator> + core::iter::traits::exact_size::ExactSizeIterator + core::iter::traits::double_ended::DoubleEndedIterator -pub fn [u8; 33]::from_byte_iter(iter: I) -> core::result::Result where I: core::iter::traits::iterator::Iterator> + core::iter::traits::exact_size::ExactSizeIterator + core::iter::traits::double_ended::DoubleEndedIterator -pub fn [u8; 384]::from_byte_iter(iter: I) -> core::result::Result where I: core::iter::traits::iterator::Iterator> + core::iter::traits::exact_size::ExactSizeIterator + core::iter::traits::double_ended::DoubleEndedIterator -pub fn [u8; 4]::from_byte_iter(iter: I) -> core::result::Result where I: core::iter::traits::iterator::Iterator> + core::iter::traits::exact_size::ExactSizeIterator + core::iter::traits::double_ended::DoubleEndedIterator -pub fn [u8; 512]::from_byte_iter(iter: I) -> core::result::Result where I: core::iter::traits::iterator::Iterator> + core::iter::traits::exact_size::ExactSizeIterator + core::iter::traits::double_ended::DoubleEndedIterator -pub fn [u8; 64]::from_byte_iter(iter: I) -> core::result::Result where I: core::iter::traits::iterator::Iterator> + core::iter::traits::exact_size::ExactSizeIterator + core::iter::traits::double_ended::DoubleEndedIterator -pub fn [u8; 65]::from_byte_iter(iter: I) -> core::result::Result where I: core::iter::traits::iterator::Iterator> + core::iter::traits::exact_size::ExactSizeIterator + core::iter::traits::double_ended::DoubleEndedIterator -pub fn [u8; 6]::from_byte_iter(iter: I) -> core::result::Result where I: core::iter::traits::iterator::Iterator> + core::iter::traits::exact_size::ExactSizeIterator + core::iter::traits::double_ended::DoubleEndedIterator -pub fn [u8; 8]::from_byte_iter(iter: I) -> core::result::Result where I: core::iter::traits::iterator::Iterator> + core::iter::traits::exact_size::ExactSizeIterator + core::iter::traits::double_ended::DoubleEndedIterator +pub fn [u8; LEN]::from_byte_iter(iter: I) -> core::result::Result where I: core::iter::traits::iterator::Iterator> + core::iter::traits::exact_size::ExactSizeIterator + core::iter::traits::double_ended::DoubleEndedIterator pub fn alloc::vec::Vec::from_byte_iter(iter: I) -> core::result::Result where I: core::iter::traits::iterator::Iterator> + core::iter::traits::exact_size::ExactSizeIterator + core::iter::traits::double_ended::DoubleEndedIterator pub fn hex_conservative::BytesToHexIter::len(&self) -> usize pub fn hex_conservative::BytesToHexIter::new(iter: I) -> hex_conservative::BytesToHexIter @@ -311,25 +275,7 @@ pub type &'a [u8; 8]::Display = hex_conservative::display::DisplayArray<'a, {$le pub type &'a [u8; 9]::Display = hex_conservative::display::DisplayArray<'a, {$len * 2}> pub type &'a [u8]::Display = hex_conservative::display::DisplayByteSlice<'a> pub type &'a alloc::vec::Vec::Display = hex_conservative::display::DisplayByteSlice<'a> -pub type [u8; 10]::Error = hex_conservative::HexToArrayError -pub type [u8; 128]::Error = hex_conservative::HexToArrayError -pub type [u8; 12]::Error = hex_conservative::HexToArrayError -pub type [u8; 14]::Error = hex_conservative::HexToArrayError -pub type [u8; 16]::Error = hex_conservative::HexToArrayError -pub type [u8; 20]::Error = hex_conservative::HexToArrayError -pub type [u8; 24]::Error = hex_conservative::HexToArrayError -pub type [u8; 256]::Error = hex_conservative::HexToArrayError -pub type [u8; 28]::Error = hex_conservative::HexToArrayError -pub type [u8; 2]::Error = hex_conservative::HexToArrayError -pub type [u8; 32]::Error = hex_conservative::HexToArrayError -pub type [u8; 33]::Error = hex_conservative::HexToArrayError -pub type [u8; 384]::Error = hex_conservative::HexToArrayError -pub type [u8; 4]::Error = hex_conservative::HexToArrayError -pub type [u8; 512]::Error = hex_conservative::HexToArrayError -pub type [u8; 64]::Error = hex_conservative::HexToArrayError -pub type [u8; 65]::Error = hex_conservative::HexToArrayError -pub type [u8; 6]::Error = hex_conservative::HexToArrayError -pub type [u8; 8]::Error = hex_conservative::HexToArrayError +pub type [u8; LEN]::Error = hex_conservative::HexToArrayError pub type alloc::vec::Vec::Error = hex_conservative::HexToBytesError pub type hex_conservative::BytesToHexIter::Item = char pub type hex_conservative::DisplayHex::Display: core::fmt::Display + core::fmt::Debug + core::fmt::LowerHex + core::fmt::UpperHex diff --git a/api/alloc.txt b/api/alloc.txt index 9c7b2b2..0a2ec65 100644 --- a/api/alloc.txt +++ b/api/alloc.txt @@ -34,25 +34,6 @@ impl core::panic::unwind_safe::RefUnwindSafe for hex_conservative::HexToBytesErr impl core::panic::unwind_safe::UnwindSafe for hex_conservative::Case impl core::panic::unwind_safe::UnwindSafe for hex_conservative::HexToArrayError impl core::panic::unwind_safe::UnwindSafe for hex_conservative::HexToBytesError -impl hex_conservative::parse::FromHex for [u8; 10] -impl hex_conservative::parse::FromHex for [u8; 128] -impl hex_conservative::parse::FromHex for [u8; 12] -impl hex_conservative::parse::FromHex for [u8; 14] -impl hex_conservative::parse::FromHex for [u8; 16] -impl hex_conservative::parse::FromHex for [u8; 20] -impl hex_conservative::parse::FromHex for [u8; 24] -impl hex_conservative::parse::FromHex for [u8; 256] -impl hex_conservative::parse::FromHex for [u8; 28] -impl hex_conservative::parse::FromHex for [u8; 2] -impl hex_conservative::parse::FromHex for [u8; 32] -impl hex_conservative::parse::FromHex for [u8; 33] -impl hex_conservative::parse::FromHex for [u8; 384] -impl hex_conservative::parse::FromHex for [u8; 4] -impl hex_conservative::parse::FromHex for [u8; 512] -impl hex_conservative::parse::FromHex for [u8; 64] -impl hex_conservative::parse::FromHex for [u8; 65] -impl hex_conservative::parse::FromHex for [u8; 6] -impl hex_conservative::parse::FromHex for [u8; 8] impl hex_conservative::parse::FromHex for alloc::vec::Vec impl<'a, const CAP: usize> core::marker::Send for hex_conservative::display::DisplayArray<'a, CAP> impl<'a, const CAP: usize> core::marker::Sync for hex_conservative::display::DisplayArray<'a, CAP> @@ -128,6 +109,7 @@ impl core::marker::Unpin for hex_conservative::buf_encoder::Bu impl core::panic::unwind_safe::RefUnwindSafe for hex_conservative::buf_encoder::BufEncoder impl core::panic::unwind_safe::UnwindSafe for hex_conservative::buf_encoder::BufEncoder impl hex_conservative::buf_encoder::BufEncoder +impl hex_conservative::parse::FromHex for [u8; LEN] pub enum hex_conservative::Case pub enum hex_conservative::HexToArrayError pub enum hex_conservative::HexToBytesError @@ -164,25 +146,7 @@ pub fn &'a [u8]::as_hex(self) -> Self::Display pub fn &'a [u8]::hex_reserve_suggestion(self) -> usize pub fn &'a alloc::vec::Vec::as_hex(self) -> Self::Display pub fn &'a alloc::vec::Vec::hex_reserve_suggestion(self) -> usize -pub fn [u8; 10]::from_byte_iter(iter: I) -> core::result::Result where I: core::iter::traits::iterator::Iterator> + core::iter::traits::exact_size::ExactSizeIterator + core::iter::traits::double_ended::DoubleEndedIterator -pub fn [u8; 128]::from_byte_iter(iter: I) -> core::result::Result where I: core::iter::traits::iterator::Iterator> + core::iter::traits::exact_size::ExactSizeIterator + core::iter::traits::double_ended::DoubleEndedIterator -pub fn [u8; 12]::from_byte_iter(iter: I) -> core::result::Result where I: core::iter::traits::iterator::Iterator> + core::iter::traits::exact_size::ExactSizeIterator + core::iter::traits::double_ended::DoubleEndedIterator -pub fn [u8; 14]::from_byte_iter(iter: I) -> core::result::Result where I: core::iter::traits::iterator::Iterator> + core::iter::traits::exact_size::ExactSizeIterator + core::iter::traits::double_ended::DoubleEndedIterator -pub fn [u8; 16]::from_byte_iter(iter: I) -> core::result::Result where I: core::iter::traits::iterator::Iterator> + core::iter::traits::exact_size::ExactSizeIterator + core::iter::traits::double_ended::DoubleEndedIterator -pub fn [u8; 20]::from_byte_iter(iter: I) -> core::result::Result where I: core::iter::traits::iterator::Iterator> + core::iter::traits::exact_size::ExactSizeIterator + core::iter::traits::double_ended::DoubleEndedIterator -pub fn [u8; 24]::from_byte_iter(iter: I) -> core::result::Result where I: core::iter::traits::iterator::Iterator> + core::iter::traits::exact_size::ExactSizeIterator + core::iter::traits::double_ended::DoubleEndedIterator -pub fn [u8; 256]::from_byte_iter(iter: I) -> core::result::Result where I: core::iter::traits::iterator::Iterator> + core::iter::traits::exact_size::ExactSizeIterator + core::iter::traits::double_ended::DoubleEndedIterator -pub fn [u8; 28]::from_byte_iter(iter: I) -> core::result::Result where I: core::iter::traits::iterator::Iterator> + core::iter::traits::exact_size::ExactSizeIterator + core::iter::traits::double_ended::DoubleEndedIterator -pub fn [u8; 2]::from_byte_iter(iter: I) -> core::result::Result where I: core::iter::traits::iterator::Iterator> + core::iter::traits::exact_size::ExactSizeIterator + core::iter::traits::double_ended::DoubleEndedIterator -pub fn [u8; 32]::from_byte_iter(iter: I) -> core::result::Result where I: core::iter::traits::iterator::Iterator> + core::iter::traits::exact_size::ExactSizeIterator + core::iter::traits::double_ended::DoubleEndedIterator -pub fn [u8; 33]::from_byte_iter(iter: I) -> core::result::Result where I: core::iter::traits::iterator::Iterator> + core::iter::traits::exact_size::ExactSizeIterator + core::iter::traits::double_ended::DoubleEndedIterator -pub fn [u8; 384]::from_byte_iter(iter: I) -> core::result::Result where I: core::iter::traits::iterator::Iterator> + core::iter::traits::exact_size::ExactSizeIterator + core::iter::traits::double_ended::DoubleEndedIterator -pub fn [u8; 4]::from_byte_iter(iter: I) -> core::result::Result where I: core::iter::traits::iterator::Iterator> + core::iter::traits::exact_size::ExactSizeIterator + core::iter::traits::double_ended::DoubleEndedIterator -pub fn [u8; 512]::from_byte_iter(iter: I) -> core::result::Result where I: core::iter::traits::iterator::Iterator> + core::iter::traits::exact_size::ExactSizeIterator + core::iter::traits::double_ended::DoubleEndedIterator -pub fn [u8; 64]::from_byte_iter(iter: I) -> core::result::Result where I: core::iter::traits::iterator::Iterator> + core::iter::traits::exact_size::ExactSizeIterator + core::iter::traits::double_ended::DoubleEndedIterator -pub fn [u8; 65]::from_byte_iter(iter: I) -> core::result::Result where I: core::iter::traits::iterator::Iterator> + core::iter::traits::exact_size::ExactSizeIterator + core::iter::traits::double_ended::DoubleEndedIterator -pub fn [u8; 6]::from_byte_iter(iter: I) -> core::result::Result where I: core::iter::traits::iterator::Iterator> + core::iter::traits::exact_size::ExactSizeIterator + core::iter::traits::double_ended::DoubleEndedIterator -pub fn [u8; 8]::from_byte_iter(iter: I) -> core::result::Result where I: core::iter::traits::iterator::Iterator> + core::iter::traits::exact_size::ExactSizeIterator + core::iter::traits::double_ended::DoubleEndedIterator +pub fn [u8; LEN]::from_byte_iter(iter: I) -> core::result::Result where I: core::iter::traits::iterator::Iterator> + core::iter::traits::exact_size::ExactSizeIterator + core::iter::traits::double_ended::DoubleEndedIterator pub fn alloc::vec::Vec::from_byte_iter(iter: I) -> core::result::Result where I: core::iter::traits::iterator::Iterator> + core::iter::traits::exact_size::ExactSizeIterator + core::iter::traits::double_ended::DoubleEndedIterator pub fn hex_conservative::BytesToHexIter::len(&self) -> usize pub fn hex_conservative::BytesToHexIter::new(iter: I) -> hex_conservative::BytesToHexIter @@ -300,25 +264,7 @@ pub type &'a [u8; 8]::Display = hex_conservative::display::DisplayArray<'a, {$le pub type &'a [u8; 9]::Display = hex_conservative::display::DisplayArray<'a, {$len * 2}> pub type &'a [u8]::Display = hex_conservative::display::DisplayByteSlice<'a> pub type &'a alloc::vec::Vec::Display = hex_conservative::display::DisplayByteSlice<'a> -pub type [u8; 10]::Error = hex_conservative::HexToArrayError -pub type [u8; 128]::Error = hex_conservative::HexToArrayError -pub type [u8; 12]::Error = hex_conservative::HexToArrayError -pub type [u8; 14]::Error = hex_conservative::HexToArrayError -pub type [u8; 16]::Error = hex_conservative::HexToArrayError -pub type [u8; 20]::Error = hex_conservative::HexToArrayError -pub type [u8; 24]::Error = hex_conservative::HexToArrayError -pub type [u8; 256]::Error = hex_conservative::HexToArrayError -pub type [u8; 28]::Error = hex_conservative::HexToArrayError -pub type [u8; 2]::Error = hex_conservative::HexToArrayError -pub type [u8; 32]::Error = hex_conservative::HexToArrayError -pub type [u8; 33]::Error = hex_conservative::HexToArrayError -pub type [u8; 384]::Error = hex_conservative::HexToArrayError -pub type [u8; 4]::Error = hex_conservative::HexToArrayError -pub type [u8; 512]::Error = hex_conservative::HexToArrayError -pub type [u8; 64]::Error = hex_conservative::HexToArrayError -pub type [u8; 65]::Error = hex_conservative::HexToArrayError -pub type [u8; 6]::Error = hex_conservative::HexToArrayError -pub type [u8; 8]::Error = hex_conservative::HexToArrayError +pub type [u8; LEN]::Error = hex_conservative::HexToArrayError pub type alloc::vec::Vec::Error = hex_conservative::HexToBytesError pub type hex_conservative::BytesToHexIter::Item = char pub type hex_conservative::DisplayHex::Display: core::fmt::Display + core::fmt::Debug + core::fmt::LowerHex + core::fmt::UpperHex diff --git a/api/core2.txt b/api/core2.txt index 97f4b67..afeb309 100644 --- a/api/core2.txt +++ b/api/core2.txt @@ -34,25 +34,6 @@ impl core::panic::unwind_safe::RefUnwindSafe for hex_conservative::HexToBytesErr impl core::panic::unwind_safe::UnwindSafe for hex_conservative::Case impl core::panic::unwind_safe::UnwindSafe for hex_conservative::HexToArrayError impl core::panic::unwind_safe::UnwindSafe for hex_conservative::HexToBytesError -impl hex_conservative::parse::FromHex for [u8; 10] -impl hex_conservative::parse::FromHex for [u8; 128] -impl hex_conservative::parse::FromHex for [u8; 12] -impl hex_conservative::parse::FromHex for [u8; 14] -impl hex_conservative::parse::FromHex for [u8; 16] -impl hex_conservative::parse::FromHex for [u8; 20] -impl hex_conservative::parse::FromHex for [u8; 24] -impl hex_conservative::parse::FromHex for [u8; 256] -impl hex_conservative::parse::FromHex for [u8; 28] -impl hex_conservative::parse::FromHex for [u8; 2] -impl hex_conservative::parse::FromHex for [u8; 32] -impl hex_conservative::parse::FromHex for [u8; 33] -impl hex_conservative::parse::FromHex for [u8; 384] -impl hex_conservative::parse::FromHex for [u8; 4] -impl hex_conservative::parse::FromHex for [u8; 512] -impl hex_conservative::parse::FromHex for [u8; 64] -impl hex_conservative::parse::FromHex for [u8; 65] -impl hex_conservative::parse::FromHex for [u8; 6] -impl hex_conservative::parse::FromHex for [u8; 8] impl<'a, const CAP: usize> core::marker::Send for hex_conservative::display::DisplayArray<'a, CAP> impl<'a, const CAP: usize> core::marker::Sync for hex_conservative::display::DisplayArray<'a, CAP> impl<'a, const CAP: usize> core::marker::Unpin for hex_conservative::display::DisplayArray<'a, CAP> @@ -127,6 +108,7 @@ impl core::marker::Unpin for hex_conservative::buf_encoder::Bu impl core::panic::unwind_safe::RefUnwindSafe for hex_conservative::buf_encoder::BufEncoder impl core::panic::unwind_safe::UnwindSafe for hex_conservative::buf_encoder::BufEncoder impl hex_conservative::buf_encoder::BufEncoder +impl hex_conservative::parse::FromHex for [u8; LEN] pub enum hex_conservative::Case pub enum hex_conservative::HexToArrayError pub enum hex_conservative::HexToBytesError @@ -161,25 +143,7 @@ pub fn &'a [u8; 8]::as_hex(self) -> Self::Display pub fn &'a [u8; 9]::as_hex(self) -> Self::Display pub fn &'a [u8]::as_hex(self) -> Self::Display pub fn &'a [u8]::hex_reserve_suggestion(self) -> usize -pub fn [u8; 10]::from_byte_iter(iter: I) -> core::result::Result where I: core::iter::traits::iterator::Iterator> + core::iter::traits::exact_size::ExactSizeIterator + core::iter::traits::double_ended::DoubleEndedIterator -pub fn [u8; 128]::from_byte_iter(iter: I) -> core::result::Result where I: core::iter::traits::iterator::Iterator> + core::iter::traits::exact_size::ExactSizeIterator + core::iter::traits::double_ended::DoubleEndedIterator -pub fn [u8; 12]::from_byte_iter(iter: I) -> core::result::Result where I: core::iter::traits::iterator::Iterator> + core::iter::traits::exact_size::ExactSizeIterator + core::iter::traits::double_ended::DoubleEndedIterator -pub fn [u8; 14]::from_byte_iter(iter: I) -> core::result::Result where I: core::iter::traits::iterator::Iterator> + core::iter::traits::exact_size::ExactSizeIterator + core::iter::traits::double_ended::DoubleEndedIterator -pub fn [u8; 16]::from_byte_iter(iter: I) -> core::result::Result where I: core::iter::traits::iterator::Iterator> + core::iter::traits::exact_size::ExactSizeIterator + core::iter::traits::double_ended::DoubleEndedIterator -pub fn [u8; 20]::from_byte_iter(iter: I) -> core::result::Result where I: core::iter::traits::iterator::Iterator> + core::iter::traits::exact_size::ExactSizeIterator + core::iter::traits::double_ended::DoubleEndedIterator -pub fn [u8; 24]::from_byte_iter(iter: I) -> core::result::Result where I: core::iter::traits::iterator::Iterator> + core::iter::traits::exact_size::ExactSizeIterator + core::iter::traits::double_ended::DoubleEndedIterator -pub fn [u8; 256]::from_byte_iter(iter: I) -> core::result::Result where I: core::iter::traits::iterator::Iterator> + core::iter::traits::exact_size::ExactSizeIterator + core::iter::traits::double_ended::DoubleEndedIterator -pub fn [u8; 28]::from_byte_iter(iter: I) -> core::result::Result where I: core::iter::traits::iterator::Iterator> + core::iter::traits::exact_size::ExactSizeIterator + core::iter::traits::double_ended::DoubleEndedIterator -pub fn [u8; 2]::from_byte_iter(iter: I) -> core::result::Result where I: core::iter::traits::iterator::Iterator> + core::iter::traits::exact_size::ExactSizeIterator + core::iter::traits::double_ended::DoubleEndedIterator -pub fn [u8; 32]::from_byte_iter(iter: I) -> core::result::Result where I: core::iter::traits::iterator::Iterator> + core::iter::traits::exact_size::ExactSizeIterator + core::iter::traits::double_ended::DoubleEndedIterator -pub fn [u8; 33]::from_byte_iter(iter: I) -> core::result::Result where I: core::iter::traits::iterator::Iterator> + core::iter::traits::exact_size::ExactSizeIterator + core::iter::traits::double_ended::DoubleEndedIterator -pub fn [u8; 384]::from_byte_iter(iter: I) -> core::result::Result where I: core::iter::traits::iterator::Iterator> + core::iter::traits::exact_size::ExactSizeIterator + core::iter::traits::double_ended::DoubleEndedIterator -pub fn [u8; 4]::from_byte_iter(iter: I) -> core::result::Result where I: core::iter::traits::iterator::Iterator> + core::iter::traits::exact_size::ExactSizeIterator + core::iter::traits::double_ended::DoubleEndedIterator -pub fn [u8; 512]::from_byte_iter(iter: I) -> core::result::Result where I: core::iter::traits::iterator::Iterator> + core::iter::traits::exact_size::ExactSizeIterator + core::iter::traits::double_ended::DoubleEndedIterator -pub fn [u8; 64]::from_byte_iter(iter: I) -> core::result::Result where I: core::iter::traits::iterator::Iterator> + core::iter::traits::exact_size::ExactSizeIterator + core::iter::traits::double_ended::DoubleEndedIterator -pub fn [u8; 65]::from_byte_iter(iter: I) -> core::result::Result where I: core::iter::traits::iterator::Iterator> + core::iter::traits::exact_size::ExactSizeIterator + core::iter::traits::double_ended::DoubleEndedIterator -pub fn [u8; 6]::from_byte_iter(iter: I) -> core::result::Result where I: core::iter::traits::iterator::Iterator> + core::iter::traits::exact_size::ExactSizeIterator + core::iter::traits::double_ended::DoubleEndedIterator -pub fn [u8; 8]::from_byte_iter(iter: I) -> core::result::Result where I: core::iter::traits::iterator::Iterator> + core::iter::traits::exact_size::ExactSizeIterator + core::iter::traits::double_ended::DoubleEndedIterator +pub fn [u8; LEN]::from_byte_iter(iter: I) -> core::result::Result where I: core::iter::traits::iterator::Iterator> + core::iter::traits::exact_size::ExactSizeIterator + core::iter::traits::double_ended::DoubleEndedIterator pub fn hex_conservative::BytesToHexIter::len(&self) -> usize pub fn hex_conservative::BytesToHexIter::new(iter: I) -> hex_conservative::BytesToHexIter pub fn hex_conservative::BytesToHexIter::next(&mut self) -> core::option::Option @@ -284,25 +248,7 @@ pub type &'a [u8; 7]::Display = hex_conservative::display::DisplayArray<'a, {$le pub type &'a [u8; 8]::Display = hex_conservative::display::DisplayArray<'a, {$len * 2}> pub type &'a [u8; 9]::Display = hex_conservative::display::DisplayArray<'a, {$len * 2}> pub type &'a [u8]::Display = hex_conservative::display::DisplayByteSlice<'a> -pub type [u8; 10]::Error = hex_conservative::HexToArrayError -pub type [u8; 128]::Error = hex_conservative::HexToArrayError -pub type [u8; 12]::Error = hex_conservative::HexToArrayError -pub type [u8; 14]::Error = hex_conservative::HexToArrayError -pub type [u8; 16]::Error = hex_conservative::HexToArrayError -pub type [u8; 20]::Error = hex_conservative::HexToArrayError -pub type [u8; 24]::Error = hex_conservative::HexToArrayError -pub type [u8; 256]::Error = hex_conservative::HexToArrayError -pub type [u8; 28]::Error = hex_conservative::HexToArrayError -pub type [u8; 2]::Error = hex_conservative::HexToArrayError -pub type [u8; 32]::Error = hex_conservative::HexToArrayError -pub type [u8; 33]::Error = hex_conservative::HexToArrayError -pub type [u8; 384]::Error = hex_conservative::HexToArrayError -pub type [u8; 4]::Error = hex_conservative::HexToArrayError -pub type [u8; 512]::Error = hex_conservative::HexToArrayError -pub type [u8; 64]::Error = hex_conservative::HexToArrayError -pub type [u8; 65]::Error = hex_conservative::HexToArrayError -pub type [u8; 6]::Error = hex_conservative::HexToArrayError -pub type [u8; 8]::Error = hex_conservative::HexToArrayError +pub type [u8; LEN]::Error = hex_conservative::HexToArrayError pub type hex_conservative::BytesToHexIter::Item = char pub type hex_conservative::DisplayHex::Display: core::fmt::Display + core::fmt::Debug + core::fmt::LowerHex + core::fmt::UpperHex pub type hex_conservative::FromHex::Error: core::convert::From + core::marker::Sized + core::fmt::Debug + core::fmt::Display diff --git a/api/default-features.txt b/api/default-features.txt index f307754..9406759 100644 --- a/api/default-features.txt +++ b/api/default-features.txt @@ -36,25 +36,6 @@ impl core::panic::unwind_safe::RefUnwindSafe for hex_conservative::HexToBytesErr impl core::panic::unwind_safe::UnwindSafe for hex_conservative::Case impl core::panic::unwind_safe::UnwindSafe for hex_conservative::HexToArrayError impl core::panic::unwind_safe::UnwindSafe for hex_conservative::HexToBytesError -impl hex_conservative::parse::FromHex for [u8; 10] -impl hex_conservative::parse::FromHex for [u8; 128] -impl hex_conservative::parse::FromHex for [u8; 12] -impl hex_conservative::parse::FromHex for [u8; 14] -impl hex_conservative::parse::FromHex for [u8; 16] -impl hex_conservative::parse::FromHex for [u8; 20] -impl hex_conservative::parse::FromHex for [u8; 24] -impl hex_conservative::parse::FromHex for [u8; 256] -impl hex_conservative::parse::FromHex for [u8; 28] -impl hex_conservative::parse::FromHex for [u8; 2] -impl hex_conservative::parse::FromHex for [u8; 32] -impl hex_conservative::parse::FromHex for [u8; 33] -impl hex_conservative::parse::FromHex for [u8; 384] -impl hex_conservative::parse::FromHex for [u8; 4] -impl hex_conservative::parse::FromHex for [u8; 512] -impl hex_conservative::parse::FromHex for [u8; 64] -impl hex_conservative::parse::FromHex for [u8; 65] -impl hex_conservative::parse::FromHex for [u8; 6] -impl hex_conservative::parse::FromHex for [u8; 8] impl hex_conservative::parse::FromHex for alloc::vec::Vec impl<'a, const CAP: usize> core::marker::Send for hex_conservative::display::DisplayArray<'a, CAP> impl<'a, const CAP: usize> core::marker::Sync for hex_conservative::display::DisplayArray<'a, CAP> @@ -131,6 +112,7 @@ impl core::marker::Unpin for hex_conservative::buf_encoder::Bu impl core::panic::unwind_safe::RefUnwindSafe for hex_conservative::buf_encoder::BufEncoder impl core::panic::unwind_safe::UnwindSafe for hex_conservative::buf_encoder::BufEncoder impl hex_conservative::buf_encoder::BufEncoder +impl hex_conservative::parse::FromHex for [u8; LEN] pub enum hex_conservative::Case pub enum hex_conservative::HexToArrayError pub enum hex_conservative::HexToBytesError @@ -167,25 +149,7 @@ pub fn &'a [u8]::as_hex(self) -> Self::Display pub fn &'a [u8]::hex_reserve_suggestion(self) -> usize pub fn &'a alloc::vec::Vec::as_hex(self) -> Self::Display pub fn &'a alloc::vec::Vec::hex_reserve_suggestion(self) -> usize -pub fn [u8; 10]::from_byte_iter(iter: I) -> core::result::Result where I: core::iter::traits::iterator::Iterator> + core::iter::traits::exact_size::ExactSizeIterator + core::iter::traits::double_ended::DoubleEndedIterator -pub fn [u8; 128]::from_byte_iter(iter: I) -> core::result::Result where I: core::iter::traits::iterator::Iterator> + core::iter::traits::exact_size::ExactSizeIterator + core::iter::traits::double_ended::DoubleEndedIterator -pub fn [u8; 12]::from_byte_iter(iter: I) -> core::result::Result where I: core::iter::traits::iterator::Iterator> + core::iter::traits::exact_size::ExactSizeIterator + core::iter::traits::double_ended::DoubleEndedIterator -pub fn [u8; 14]::from_byte_iter(iter: I) -> core::result::Result where I: core::iter::traits::iterator::Iterator> + core::iter::traits::exact_size::ExactSizeIterator + core::iter::traits::double_ended::DoubleEndedIterator -pub fn [u8; 16]::from_byte_iter(iter: I) -> core::result::Result where I: core::iter::traits::iterator::Iterator> + core::iter::traits::exact_size::ExactSizeIterator + core::iter::traits::double_ended::DoubleEndedIterator -pub fn [u8; 20]::from_byte_iter(iter: I) -> core::result::Result where I: core::iter::traits::iterator::Iterator> + core::iter::traits::exact_size::ExactSizeIterator + core::iter::traits::double_ended::DoubleEndedIterator -pub fn [u8; 24]::from_byte_iter(iter: I) -> core::result::Result where I: core::iter::traits::iterator::Iterator> + core::iter::traits::exact_size::ExactSizeIterator + core::iter::traits::double_ended::DoubleEndedIterator -pub fn [u8; 256]::from_byte_iter(iter: I) -> core::result::Result where I: core::iter::traits::iterator::Iterator> + core::iter::traits::exact_size::ExactSizeIterator + core::iter::traits::double_ended::DoubleEndedIterator -pub fn [u8; 28]::from_byte_iter(iter: I) -> core::result::Result where I: core::iter::traits::iterator::Iterator> + core::iter::traits::exact_size::ExactSizeIterator + core::iter::traits::double_ended::DoubleEndedIterator -pub fn [u8; 2]::from_byte_iter(iter: I) -> core::result::Result where I: core::iter::traits::iterator::Iterator> + core::iter::traits::exact_size::ExactSizeIterator + core::iter::traits::double_ended::DoubleEndedIterator -pub fn [u8; 32]::from_byte_iter(iter: I) -> core::result::Result where I: core::iter::traits::iterator::Iterator> + core::iter::traits::exact_size::ExactSizeIterator + core::iter::traits::double_ended::DoubleEndedIterator -pub fn [u8; 33]::from_byte_iter(iter: I) -> core::result::Result where I: core::iter::traits::iterator::Iterator> + core::iter::traits::exact_size::ExactSizeIterator + core::iter::traits::double_ended::DoubleEndedIterator -pub fn [u8; 384]::from_byte_iter(iter: I) -> core::result::Result where I: core::iter::traits::iterator::Iterator> + core::iter::traits::exact_size::ExactSizeIterator + core::iter::traits::double_ended::DoubleEndedIterator -pub fn [u8; 4]::from_byte_iter(iter: I) -> core::result::Result where I: core::iter::traits::iterator::Iterator> + core::iter::traits::exact_size::ExactSizeIterator + core::iter::traits::double_ended::DoubleEndedIterator -pub fn [u8; 512]::from_byte_iter(iter: I) -> core::result::Result where I: core::iter::traits::iterator::Iterator> + core::iter::traits::exact_size::ExactSizeIterator + core::iter::traits::double_ended::DoubleEndedIterator -pub fn [u8; 64]::from_byte_iter(iter: I) -> core::result::Result where I: core::iter::traits::iterator::Iterator> + core::iter::traits::exact_size::ExactSizeIterator + core::iter::traits::double_ended::DoubleEndedIterator -pub fn [u8; 65]::from_byte_iter(iter: I) -> core::result::Result where I: core::iter::traits::iterator::Iterator> + core::iter::traits::exact_size::ExactSizeIterator + core::iter::traits::double_ended::DoubleEndedIterator -pub fn [u8; 6]::from_byte_iter(iter: I) -> core::result::Result where I: core::iter::traits::iterator::Iterator> + core::iter::traits::exact_size::ExactSizeIterator + core::iter::traits::double_ended::DoubleEndedIterator -pub fn [u8; 8]::from_byte_iter(iter: I) -> core::result::Result where I: core::iter::traits::iterator::Iterator> + core::iter::traits::exact_size::ExactSizeIterator + core::iter::traits::double_ended::DoubleEndedIterator +pub fn [u8; LEN]::from_byte_iter(iter: I) -> core::result::Result where I: core::iter::traits::iterator::Iterator> + core::iter::traits::exact_size::ExactSizeIterator + core::iter::traits::double_ended::DoubleEndedIterator pub fn alloc::vec::Vec::from_byte_iter(iter: I) -> core::result::Result where I: core::iter::traits::iterator::Iterator> + core::iter::traits::exact_size::ExactSizeIterator + core::iter::traits::double_ended::DoubleEndedIterator pub fn hex_conservative::BytesToHexIter::len(&self) -> usize pub fn hex_conservative::BytesToHexIter::new(iter: I) -> hex_conservative::BytesToHexIter @@ -306,25 +270,7 @@ pub type &'a [u8; 8]::Display = hex_conservative::display::DisplayArray<'a, {$le pub type &'a [u8; 9]::Display = hex_conservative::display::DisplayArray<'a, {$len * 2}> pub type &'a [u8]::Display = hex_conservative::display::DisplayByteSlice<'a> pub type &'a alloc::vec::Vec::Display = hex_conservative::display::DisplayByteSlice<'a> -pub type [u8; 10]::Error = hex_conservative::HexToArrayError -pub type [u8; 128]::Error = hex_conservative::HexToArrayError -pub type [u8; 12]::Error = hex_conservative::HexToArrayError -pub type [u8; 14]::Error = hex_conservative::HexToArrayError -pub type [u8; 16]::Error = hex_conservative::HexToArrayError -pub type [u8; 20]::Error = hex_conservative::HexToArrayError -pub type [u8; 24]::Error = hex_conservative::HexToArrayError -pub type [u8; 256]::Error = hex_conservative::HexToArrayError -pub type [u8; 28]::Error = hex_conservative::HexToArrayError -pub type [u8; 2]::Error = hex_conservative::HexToArrayError -pub type [u8; 32]::Error = hex_conservative::HexToArrayError -pub type [u8; 33]::Error = hex_conservative::HexToArrayError -pub type [u8; 384]::Error = hex_conservative::HexToArrayError -pub type [u8; 4]::Error = hex_conservative::HexToArrayError -pub type [u8; 512]::Error = hex_conservative::HexToArrayError -pub type [u8; 64]::Error = hex_conservative::HexToArrayError -pub type [u8; 65]::Error = hex_conservative::HexToArrayError -pub type [u8; 6]::Error = hex_conservative::HexToArrayError -pub type [u8; 8]::Error = hex_conservative::HexToArrayError +pub type [u8; LEN]::Error = hex_conservative::HexToArrayError pub type alloc::vec::Vec::Error = hex_conservative::HexToBytesError pub type hex_conservative::BytesToHexIter::Item = char pub type hex_conservative::DisplayHex::Display: core::fmt::Display + core::fmt::Debug + core::fmt::LowerHex + core::fmt::UpperHex diff --git a/api/no-default-features.txt b/api/no-default-features.txt index 2949405..67bab73 100644 --- a/api/no-default-features.txt +++ b/api/no-default-features.txt @@ -34,25 +34,6 @@ impl core::panic::unwind_safe::RefUnwindSafe for hex_conservative::HexToBytesErr impl core::panic::unwind_safe::UnwindSafe for hex_conservative::Case impl core::panic::unwind_safe::UnwindSafe for hex_conservative::HexToArrayError impl core::panic::unwind_safe::UnwindSafe for hex_conservative::HexToBytesError -impl hex_conservative::parse::FromHex for [u8; 10] -impl hex_conservative::parse::FromHex for [u8; 128] -impl hex_conservative::parse::FromHex for [u8; 12] -impl hex_conservative::parse::FromHex for [u8; 14] -impl hex_conservative::parse::FromHex for [u8; 16] -impl hex_conservative::parse::FromHex for [u8; 20] -impl hex_conservative::parse::FromHex for [u8; 24] -impl hex_conservative::parse::FromHex for [u8; 256] -impl hex_conservative::parse::FromHex for [u8; 28] -impl hex_conservative::parse::FromHex for [u8; 2] -impl hex_conservative::parse::FromHex for [u8; 32] -impl hex_conservative::parse::FromHex for [u8; 33] -impl hex_conservative::parse::FromHex for [u8; 384] -impl hex_conservative::parse::FromHex for [u8; 4] -impl hex_conservative::parse::FromHex for [u8; 512] -impl hex_conservative::parse::FromHex for [u8; 64] -impl hex_conservative::parse::FromHex for [u8; 65] -impl hex_conservative::parse::FromHex for [u8; 6] -impl hex_conservative::parse::FromHex for [u8; 8] impl<'a, const CAP: usize> core::marker::Send for hex_conservative::display::DisplayArray<'a, CAP> impl<'a, const CAP: usize> core::marker::Sync for hex_conservative::display::DisplayArray<'a, CAP> impl<'a, const CAP: usize> core::marker::Unpin for hex_conservative::display::DisplayArray<'a, CAP> @@ -126,6 +107,7 @@ impl core::marker::Unpin for hex_conservative::buf_encoder::Bu impl core::panic::unwind_safe::RefUnwindSafe for hex_conservative::buf_encoder::BufEncoder impl core::panic::unwind_safe::UnwindSafe for hex_conservative::buf_encoder::BufEncoder impl hex_conservative::buf_encoder::BufEncoder +impl hex_conservative::parse::FromHex for [u8; LEN] pub enum hex_conservative::Case pub enum hex_conservative::HexToArrayError pub enum hex_conservative::HexToBytesError @@ -160,25 +142,7 @@ pub fn &'a [u8; 8]::as_hex(self) -> Self::Display pub fn &'a [u8; 9]::as_hex(self) -> Self::Display pub fn &'a [u8]::as_hex(self) -> Self::Display pub fn &'a [u8]::hex_reserve_suggestion(self) -> usize -pub fn [u8; 10]::from_byte_iter(iter: I) -> core::result::Result where I: core::iter::traits::iterator::Iterator> + core::iter::traits::exact_size::ExactSizeIterator + core::iter::traits::double_ended::DoubleEndedIterator -pub fn [u8; 128]::from_byte_iter(iter: I) -> core::result::Result where I: core::iter::traits::iterator::Iterator> + core::iter::traits::exact_size::ExactSizeIterator + core::iter::traits::double_ended::DoubleEndedIterator -pub fn [u8; 12]::from_byte_iter(iter: I) -> core::result::Result where I: core::iter::traits::iterator::Iterator> + core::iter::traits::exact_size::ExactSizeIterator + core::iter::traits::double_ended::DoubleEndedIterator -pub fn [u8; 14]::from_byte_iter(iter: I) -> core::result::Result where I: core::iter::traits::iterator::Iterator> + core::iter::traits::exact_size::ExactSizeIterator + core::iter::traits::double_ended::DoubleEndedIterator -pub fn [u8; 16]::from_byte_iter(iter: I) -> core::result::Result where I: core::iter::traits::iterator::Iterator> + core::iter::traits::exact_size::ExactSizeIterator + core::iter::traits::double_ended::DoubleEndedIterator -pub fn [u8; 20]::from_byte_iter(iter: I) -> core::result::Result where I: core::iter::traits::iterator::Iterator> + core::iter::traits::exact_size::ExactSizeIterator + core::iter::traits::double_ended::DoubleEndedIterator -pub fn [u8; 24]::from_byte_iter(iter: I) -> core::result::Result where I: core::iter::traits::iterator::Iterator> + core::iter::traits::exact_size::ExactSizeIterator + core::iter::traits::double_ended::DoubleEndedIterator -pub fn [u8; 256]::from_byte_iter(iter: I) -> core::result::Result where I: core::iter::traits::iterator::Iterator> + core::iter::traits::exact_size::ExactSizeIterator + core::iter::traits::double_ended::DoubleEndedIterator -pub fn [u8; 28]::from_byte_iter(iter: I) -> core::result::Result where I: core::iter::traits::iterator::Iterator> + core::iter::traits::exact_size::ExactSizeIterator + core::iter::traits::double_ended::DoubleEndedIterator -pub fn [u8; 2]::from_byte_iter(iter: I) -> core::result::Result where I: core::iter::traits::iterator::Iterator> + core::iter::traits::exact_size::ExactSizeIterator + core::iter::traits::double_ended::DoubleEndedIterator -pub fn [u8; 32]::from_byte_iter(iter: I) -> core::result::Result where I: core::iter::traits::iterator::Iterator> + core::iter::traits::exact_size::ExactSizeIterator + core::iter::traits::double_ended::DoubleEndedIterator -pub fn [u8; 33]::from_byte_iter(iter: I) -> core::result::Result where I: core::iter::traits::iterator::Iterator> + core::iter::traits::exact_size::ExactSizeIterator + core::iter::traits::double_ended::DoubleEndedIterator -pub fn [u8; 384]::from_byte_iter(iter: I) -> core::result::Result where I: core::iter::traits::iterator::Iterator> + core::iter::traits::exact_size::ExactSizeIterator + core::iter::traits::double_ended::DoubleEndedIterator -pub fn [u8; 4]::from_byte_iter(iter: I) -> core::result::Result where I: core::iter::traits::iterator::Iterator> + core::iter::traits::exact_size::ExactSizeIterator + core::iter::traits::double_ended::DoubleEndedIterator -pub fn [u8; 512]::from_byte_iter(iter: I) -> core::result::Result where I: core::iter::traits::iterator::Iterator> + core::iter::traits::exact_size::ExactSizeIterator + core::iter::traits::double_ended::DoubleEndedIterator -pub fn [u8; 64]::from_byte_iter(iter: I) -> core::result::Result where I: core::iter::traits::iterator::Iterator> + core::iter::traits::exact_size::ExactSizeIterator + core::iter::traits::double_ended::DoubleEndedIterator -pub fn [u8; 65]::from_byte_iter(iter: I) -> core::result::Result where I: core::iter::traits::iterator::Iterator> + core::iter::traits::exact_size::ExactSizeIterator + core::iter::traits::double_ended::DoubleEndedIterator -pub fn [u8; 6]::from_byte_iter(iter: I) -> core::result::Result where I: core::iter::traits::iterator::Iterator> + core::iter::traits::exact_size::ExactSizeIterator + core::iter::traits::double_ended::DoubleEndedIterator -pub fn [u8; 8]::from_byte_iter(iter: I) -> core::result::Result where I: core::iter::traits::iterator::Iterator> + core::iter::traits::exact_size::ExactSizeIterator + core::iter::traits::double_ended::DoubleEndedIterator +pub fn [u8; LEN]::from_byte_iter(iter: I) -> core::result::Result where I: core::iter::traits::iterator::Iterator> + core::iter::traits::exact_size::ExactSizeIterator + core::iter::traits::double_ended::DoubleEndedIterator pub fn hex_conservative::BytesToHexIter::len(&self) -> usize pub fn hex_conservative::BytesToHexIter::new(iter: I) -> hex_conservative::BytesToHexIter pub fn hex_conservative::BytesToHexIter::next(&mut self) -> core::option::Option @@ -282,25 +246,7 @@ pub type &'a [u8; 7]::Display = hex_conservative::display::DisplayArray<'a, {$le pub type &'a [u8; 8]::Display = hex_conservative::display::DisplayArray<'a, {$len * 2}> pub type &'a [u8; 9]::Display = hex_conservative::display::DisplayArray<'a, {$len * 2}> pub type &'a [u8]::Display = hex_conservative::display::DisplayByteSlice<'a> -pub type [u8; 10]::Error = hex_conservative::HexToArrayError -pub type [u8; 128]::Error = hex_conservative::HexToArrayError -pub type [u8; 12]::Error = hex_conservative::HexToArrayError -pub type [u8; 14]::Error = hex_conservative::HexToArrayError -pub type [u8; 16]::Error = hex_conservative::HexToArrayError -pub type [u8; 20]::Error = hex_conservative::HexToArrayError -pub type [u8; 24]::Error = hex_conservative::HexToArrayError -pub type [u8; 256]::Error = hex_conservative::HexToArrayError -pub type [u8; 28]::Error = hex_conservative::HexToArrayError -pub type [u8; 2]::Error = hex_conservative::HexToArrayError -pub type [u8; 32]::Error = hex_conservative::HexToArrayError -pub type [u8; 33]::Error = hex_conservative::HexToArrayError -pub type [u8; 384]::Error = hex_conservative::HexToArrayError -pub type [u8; 4]::Error = hex_conservative::HexToArrayError -pub type [u8; 512]::Error = hex_conservative::HexToArrayError -pub type [u8; 64]::Error = hex_conservative::HexToArrayError -pub type [u8; 65]::Error = hex_conservative::HexToArrayError -pub type [u8; 6]::Error = hex_conservative::HexToArrayError -pub type [u8; 8]::Error = hex_conservative::HexToArrayError +pub type [u8; LEN]::Error = hex_conservative::HexToArrayError pub type hex_conservative::BytesToHexIter::Item = char pub type hex_conservative::DisplayHex::Display: core::fmt::Display + core::fmt::Debug + core::fmt::LowerHex + core::fmt::UpperHex pub type hex_conservative::FromHex::Error: core::convert::From + core::marker::Sized + core::fmt::Debug + core::fmt::Display