Skip to main content

HexCodecConfig

Struct HexCodecConfig 

Source
pub struct HexCodecConfig { /* private fields */ }
Expand description

Configuration shared by crate::HexCodec encoding and decoding operations.

The configuration is intentionally separate from the codec value so the same formatting and decoding policy can be reused by multiple codecs.

§Examples

use qubit_codec_misc::HexCodec;
use qubit_codec_misc::HexCodecConfig;

let config = HexCodecConfig::new()
    .with_uppercase(true)
    .with_prefix("0x");
let codec = HexCodec::from_config(config);
assert_eq!(codec.encode(&[0x1f, 0x8b]), "0x1F8B");

Implementations§

Source§

impl HexCodecConfig

Source

pub fn new() -> Self

Creates a lowercase configuration without prefixes or separators.

§Returns

A configuration with lowercase encoding and all optional formatting tokens disabled.

Source

pub fn is_uppercase(&self) -> bool

Returns whether encoded digits use uppercase characters.

§Returns

true if uppercase hexadecimal digits are used during encoding.

Source

pub fn prefix(&self) -> Option<&str>

Returns the configured whole-output prefix.

§Returns

Some contains the prefix written before the encoded bytes; None means no whole-output prefix is configured.

Source

pub fn byte_prefix(&self) -> Option<&str>

Returns the configured per-byte prefix.

§Returns

Some contains the prefix written before each encoded byte; None means no per-byte prefix is configured.

Source

pub fn separator(&self) -> Option<&str>

Returns the configured separator.

§Returns

Some contains the separator written between bytes; None means no separator is configured.

Source

pub fn ignores_ascii_whitespace(&self) -> bool

Returns whether ASCII whitespace is ignored while decoding.

§Returns

true if ASCII whitespace is skipped during decoding.

Source

pub fn ignores_prefix_case(&self) -> bool

Returns whether configured prefixes are matched case-insensitively.

§Returns

true if ASCII letter case is ignored when matching prefixes.

Source

pub fn with_uppercase(self, uppercase: bool) -> Self

Sets whether encoded digits should be uppercase.

§Parameters
  • uppercase: Whether encoding uses uppercase hexadecimal digits.
§Returns

The updated configuration.

Source

pub fn with_prefix(self, prefix: impl Into<String>) -> Self

Sets a whole-output prefix.

§Parameters
  • prefix: Text written once before all encoded bytes.
§Returns

The updated configuration.

Source

pub fn with_byte_prefix(self, prefix: impl Into<String>) -> Self

Sets a per-byte prefix.

§Parameters
  • prefix: Text written before each encoded byte.
§Returns

The updated configuration.

Source

pub fn with_separator(self, separator: impl Into<String>) -> Self

Sets a separator between encoded bytes.

With a non-empty separator, the two hexadecimal digits of each byte must be contiguous. Ignored ASCII whitespace may surround complete byte tokens and configured separators, but does not replace a required prefix or separator. Without a non-empty separator, ignored whitespace may also occur between the two digits of a byte. A complete structural token is matched before skipping additional whitespace. Non-whitespace separators are matched exactly; a whitespace-only separator still requires whitespace between bytes, and ignored ASCII whitespace may consume additional adjacent whitespace. Prefix case folding does not apply to separators.

§Parameters
  • separator: Text written between adjacent encoded bytes.
§Returns

The updated configuration.

Source

pub fn with_ignored_ascii_whitespace(self, ignore: bool) -> Self

Sets whether ASCII whitespace is ignored while decoding.

With a non-empty separator, the two hexadecimal digits of each byte must be contiguous. Ignored ASCII whitespace may surround complete byte tokens and configured separators, but does not replace a required prefix or separator. Without a non-empty separator, ignored whitespace may also occur between the two digits of a byte. A complete structural token is matched before skipping additional whitespace. Non-whitespace separators are matched exactly; a whitespace-only separator still requires whitespace between bytes, and ignored ASCII whitespace may consume additional adjacent whitespace. Prefix case folding does not apply to separators.

§Parameters
  • ignore: Whether ASCII whitespace is skipped during decoding.
§Returns

The updated configuration.

Source

pub fn with_ignore_prefix_case(self, ignore: bool) -> Self

Sets whether configured prefixes are matched case-insensitively.

§Parameters
  • ignore: Whether prefix matching ignores ASCII letter case.
§Returns

The updated configuration.

Trait Implementations§

Source§

impl Clone for HexCodecConfig

Source§

fn clone(&self) -> Self

Returns a duplicate of the value. Read more
1.0.0 (const: unstable) · Source§

fn clone_from(&mut self, source: &Self)

Performs copy-assignment from source. Read more
Source§

impl Debug for HexCodecConfig

Source§

fn fmt(&self, f: &mut Formatter<'_>) -> Result

Formats the value using the given formatter. Read more
Source§

impl Default for HexCodecConfig

Source§

fn default() -> Self

Creates the default lowercase configuration without prefixes or separators.

§Returns

A configuration with lowercase encoding and all optional formatting tokens disabled.

Source§

impl Eq for HexCodecConfig

Source§

impl PartialEq for HexCodecConfig

Source§

fn eq(&self, other: &Self) -> bool

Equality operator ==. Read more
1.0.0 (const: unstable) · Source§

fn ne(&self, other: &Rhs) -> bool

Inequality operator !=. Read more
Source§

impl StructuralPartialEq for HexCodecConfig

Auto Trait Implementations§

Blanket Implementations§

Source§

impl<T> Any for T
where T: 'static + ?Sized,

Source§

fn type_id(&self) -> TypeId

Gets the TypeId of self. Read more
Source§

impl<T> Borrow<T> for T
where T: ?Sized,

Source§

fn borrow(&self) -> &T

Immutably borrows from an owned value. Read more
Source§

impl<T> BorrowMut<T> for T
where T: ?Sized,

Source§

fn borrow_mut(&mut self) -> &mut T

Mutably borrows from an owned value. Read more
Source§

impl<T> CloneToUninit for T
where T: Clone,

Source§

unsafe fn clone_to_uninit(&self, dest: *mut u8)

🔬This is a nightly-only experimental API. (clone_to_uninit)
Performs copy-assignment from self to dest. Read more
Source§

impl<T> From<T> for T

Source§

fn from(t: T) -> T

Returns the argument unchanged.

Source§

impl<T, U> Into<U> for T
where U: From<T>,

Source§

fn into(self) -> U

Calls U::from(self).

That is, this conversion is whatever the implementation of From<T> for U chooses to do.

Source§

impl<T> ToOwned for T
where T: Clone,

Source§

type Owned = T

The resulting type after obtaining ownership.
Source§

fn to_owned(&self) -> T

Creates owned data from borrowed data, usually by cloning. Read more
Source§

fn clone_into(&self, target: &mut T)

Uses borrowed data to replace owned data, usually by cloning. Read more
Source§

impl<T, U> TryFrom<U> for T
where U: Into<T>,

Source§

type Error = !

The type returned in the event of a conversion error.
Source§

fn try_from(value: U) -> Result<T, !>

Performs the conversion.
Source§

impl<T, U> TryInto<U> for T
where U: TryFrom<T>,

Source§

type Error = <U as TryFrom<T>>::Error

The type returned in the event of a conversion error.
Source§

fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>

Performs the conversion.