pub struct HexByteCodec { /* private fields */ }Expand description
Encodes and decodes one byte as two ASCII hexadecimal units.
HexByteCodec is the low-level Codec implementation for streaming or
generic codec call sites. It does not understand whole-string prefixes,
per-byte prefixes, separators, or whitespace. Use crate::HexCodec for
owned byte-slice helpers with those formatting options.
§Examples
use qubit_codec::Codec;
use qubit_codec_misc::HexByteCodec;
let mut codec = HexByteCodec::upper();
let mut output = [0_u8; 2];
let written = unsafe { Codec::encode(&mut codec, &0xaf, &mut output, 0) }?;
assert_eq!(2, written);
assert_eq!(b"AF", &output);Implementations§
Source§impl HexByteCodec
impl HexByteCodec
Sourcepub const fn is_uppercase(self) -> bool
pub const fn is_uppercase(self) -> bool
Returns whether this byte codec emits uppercase hexadecimal digits.
Sourcepub const fn with_uppercase(self, uppercase: bool) -> Self
pub const fn with_uppercase(self, uppercase: bool) -> Self
Sets whether encoded digits should be uppercase.
Trait Implementations§
Source§impl Clone for HexByteCodec
impl Clone for HexByteCodec
Source§impl Codec for HexByteCodec
impl Codec for HexByteCodec
Source§unsafe fn decode(
&mut self,
input: &[u8],
input_index: usize,
) -> Result<(u8, NonZeroUsize), DecodeFailure<Self::DecodeError>>
unsafe fn decode( &mut self, input: &[u8], input_index: usize, ) -> Result<(u8, NonZeroUsize), DecodeFailure<Self::DecodeError>>
Decodes one byte from two ASCII hexadecimal digits.
§Safety
The caller must provide two readable units at input_index.
Source§unsafe fn encode(
&mut self,
value: &u8,
output: &mut [u8],
output_index: usize,
) -> Result<usize, Self::EncodeError>
unsafe fn encode( &mut self, value: &u8, output: &mut [u8], output_index: usize, ) -> Result<usize, Self::EncodeError>
Encodes one byte as two ASCII hexadecimal digits.
§Safety
The caller must provide two writable output units at output_index.
Source§const MIN_UNITS_PER_VALUE: usize = 2
const MIN_UNITS_PER_VALUE: usize = 2
The minimum possible non-zero readable unit count for one decoded value. Read more
Source§const MAX_ENCODE_UNITS_PER_VALUE: usize = 2
const MAX_ENCODE_UNITS_PER_VALUE: usize = 2
The maximum unit count emitted when encoding one value. Read more
Source§const MAX_DECODE_UNITS_PER_VALUE: usize = 2
const MAX_DECODE_UNITS_PER_VALUE: usize = 2
The maximum non-zero unit count consumed to decode one value. Read more
Source§type DecodeError = MiscCodecError
type DecodeError = MiscCodecError
The type of errors reported when decoding malformed units.
Source§type EncodeError = MiscCodecError
type EncodeError = MiscCodecError
The type of errors reported when encoding an unsupported value.
Source§const MAX_ENCODE_RESET_UNITS: usize = 0
const MAX_ENCODE_RESET_UNITS: usize = 0
The maximum unit count emitted when resetting encode state. Read more
Source§const MAX_ENCODE_FINISH_UNITS: usize = 0
const MAX_ENCODE_FINISH_UNITS: usize = 0
The maximum unit count emitted when finishing encode state at EOF. Read more
Source§const MAX_DECODE_RESET_VALUES: usize = 0
const MAX_DECODE_RESET_VALUES: usize = 0
The maximum value count emitted when resetting decode state. Read more
Source§const MAX_DECODE_FINISH_VALUES: usize = 0
const MAX_DECODE_FINISH_VALUES: usize = 0
The maximum value count emitted when finishing decode state. Read more
Source§fn can_encode_value(&self, _value: &Self::Value) -> bool
fn can_encode_value(&self, _value: &Self::Value) -> bool
Returns whether
value is in this codec’s encodable value domain. Read moreSource§fn encode_len(&self, _value: &Self::Value) -> usize
fn encode_len(&self, _value: &Self::Value) -> usize
Returns the exact unit count this codec will write when encoding
value. Read moreSource§unsafe fn encode_reset(
&mut self,
_output: &mut [Self::Unit],
_output_index: usize,
) -> Result<usize, Self::EncodeError>
unsafe fn encode_reset( &mut self, _output: &mut [Self::Unit], _output_index: usize, ) -> Result<usize, Self::EncodeError>
Emits stream-start output and resets encode-side state. Read more
Source§unsafe fn encode_finish(
&mut self,
_output: &mut [Self::Unit],
_output_index: usize,
) -> Result<usize, Self::EncodeError>
unsafe fn encode_finish( &mut self, _output: &mut [Self::Unit], _output_index: usize, ) -> Result<usize, Self::EncodeError>
Emits EOF trailer output and finishes encode-side state. Read more
Source§unsafe fn decode_reset(
&mut self,
_output: &mut [Self::Value],
_output_index: usize,
) -> Result<usize, Self::DecodeError>
unsafe fn decode_reset( &mut self, _output: &mut [Self::Value], _output_index: usize, ) -> Result<usize, Self::DecodeError>
Emits stream-start values and resets decode-side state. Read more
Source§unsafe fn decode_eof(
&mut self,
input: &[Self::Unit],
input_index: usize,
) -> Result<(Self::Value, NonZero<usize>), DecodeFailure<Self::DecodeError>>
unsafe fn decode_eof( &mut self, input: &[Self::Unit], input_index: usize, ) -> Result<(Self::Value, NonZero<usize>), DecodeFailure<Self::DecodeError>>
Decodes one value after the caller has established end of input. Read more
Source§unsafe fn decode_finish(
&mut self,
_output: &mut [Self::Value],
_output_index: usize,
) -> Result<usize, Self::DecodeError>
unsafe fn decode_finish( &mut self, _output: &mut [Self::Value], _output_index: usize, ) -> Result<usize, Self::DecodeError>
Finishes decode-side EOF state into
output. Read moreimpl Copy for HexByteCodec
Source§impl Debug for HexByteCodec
impl Debug for HexByteCodec
Source§impl Default for HexByteCodec
impl Default for HexByteCodec
impl Eq for HexByteCodec
Source§impl PartialEq for HexByteCodec
impl PartialEq for HexByteCodec
impl StructuralPartialEq for HexByteCodec
Auto Trait Implementations§
impl Freeze for HexByteCodec
impl RefUnwindSafe for HexByteCodec
impl Send for HexByteCodec
impl Sync for HexByteCodec
impl Unpin for HexByteCodec
impl UnsafeUnpin for HexByteCodec
impl UnwindSafe for HexByteCodec
Blanket Implementations§
Source§impl<T> BorrowMut<T> for Twhere
T: ?Sized,
impl<T> BorrowMut<T> for Twhere
T: ?Sized,
Source§fn borrow_mut(&mut self) -> &mut T
fn borrow_mut(&mut self) -> &mut T
Mutably borrows from an owned value. Read more