Skip to main content

CStringLiteralCodec

Struct CStringLiteralCodec 

Source
pub struct CStringLiteralCodec;
Expand description

Encodes and decodes byte-oriented C string literal fragments.

This codec is intended for textual formats that embed byte sequences with C escapes, such as PK\003\004 or \xd0\xcf. It decodes into raw bytes and does not require surrounding quotes.

Implementations§

Source§

impl CStringLiteralCodec

Source

pub fn new() -> Self

Creates a C string literal codec.

§Returns

A stateless C string literal codec.

Source

pub fn encode(&self, bytes: &[u8]) -> String

Encodes bytes into a C string literal fragment.

§Parameters
  • bytes: Raw bytes to encode.
§Returns

A C string literal fragment without surrounding quotes.

Source

pub fn decode(&self, text: &str) -> CodecResult<Vec<u8>>

Decodes a C string literal fragment into bytes.

§Parameters
  • text: C string literal fragment without surrounding quotes.
§Returns

Decoded raw bytes.

§Errors

Returns CodecError::InvalidEscape for malformed escape sequences, CodecError::InvalidDigit for malformed fixed-width numeric escapes, and CodecError::InvalidCharacter for unsupported raw source characters.

Trait Implementations§

Source§

impl Clone for CStringLiteralCodec

Source§

fn clone(&self) -> CStringLiteralCodec

Returns a duplicate of the value. Read more
1.0.0 · Source§

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

Performs copy-assignment from source. Read more
Source§

impl Debug for CStringLiteralCodec

Source§

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

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

impl Decoder<str> for CStringLiteralCodec

Source§

fn decode(&self, input: &str) -> Result<Self::Output, Self::Error>

Decodes a C string literal fragment into bytes.

Source§

type Error = CodecError

Decoding error type.
Source§

type Output = Vec<u8>

Decoded output type.
Source§

impl Default for CStringLiteralCodec

Source§

fn default() -> CStringLiteralCodec

Returns the “default value” for a type. Read more
Source§

impl Encoder<[u8]> for CStringLiteralCodec

Source§

fn encode(&self, input: &[u8]) -> Result<Self::Output, Self::Error>

Encodes bytes into a C string literal fragment.

Source§

type Error = CodecError

Encoding error type.
Source§

type Output = String

Encoded output type.
Source§

impl PartialEq for CStringLiteralCodec

Source§

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

Tests for self and other values to be equal, and is used by ==.
1.0.0 · Source§

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

Tests for !=. The default implementation is almost always sufficient, and should not be overridden without very good reason.
Source§

impl Copy for CStringLiteralCodec

Source§

impl Eq for CStringLiteralCodec

Source§

impl StructuralPartialEq for CStringLiteralCodec

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 = Infallible

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

fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>

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.
Source§

impl<T, EncodeInput, DecodeInput> Codec<EncodeInput, DecodeInput> for T
where T: Encoder<EncodeInput> + Decoder<DecodeInput>, EncodeInput: ?Sized, DecodeInput: ?Sized,