Struct EscapeIterInner

pub(crate) struct EscapeIterInner<const N: usize, ESCAPING> { pub(in ::escape) data: MaybeEscapedCharacter<N>, pub(in ::escape) alive: Range<u8>, pub(in ::escape) escaping: PhantomData<ESCAPING> }

An iterator over a possibly escaped character.

Fields

data: MaybeEscapedCharacter<N>
alive: Range<u8>
escaping: PhantomData<ESCAPING>

Implementations

impl<const N: usize> EscapeIterInner<N, AlwaysEscaped>

fn next(&mut self) -> Option<u8>
fn next_back(&mut self) -> Option<u8>

impl<const N: usize> EscapeIterInner<N, MaybeEscaped>

const fn printable(c: char) -> Self
fn next(&mut self) -> Option<char>

impl<const N: usize, ESCAPING> EscapeIterInner<N, ESCAPING>

const LITERAL_ESCAPE_START: u8 = 128;
const unsafe fn new(data: MaybeEscapedCharacter<N>, alive: Range<u8>) -> Self

Safety

data.escape_seq must contain an escape sequence in the range given by alive.

const fn backslash(c: Char) -> Self
const fn ascii(c: u8) -> Self
const fn unicode(c: char) -> Self
const fn empty() -> Self
fn len(&self) -> usize
fn advance_by(&mut self, n: usize) -> Result<(), NonZero<usize>>
fn advance_back_by(&mut self, n: usize) -> Result<(), NonZero<usize>>
const fn to_char(&self) -> Option<char>

Returns a char if self.data contains one in its literal variant.

unsafe fn to_str_unchecked(&self) -> &str

Returns the printable ASCII characters in the escape_seq variant of self.data as a string.

Safety

  • self.data must contain printable ASCII characters in its escape_seq variant.
  • self.alive must be a valid range for self.data.escape_seq.

Trait Implementations

impl<const N: usize> Debug for EscapeIterInner<N, AlwaysEscaped>

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

impl<const N: usize> Debug for EscapeIterInner<N, MaybeEscaped>

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

impl<const N: usize> Display for EscapeIterInner<N, AlwaysEscaped>

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

impl<const N: usize> Display for EscapeIterInner<N, MaybeEscaped>

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

impl<const N: usize, ESCAPING: Clone> Clone for EscapeIterInner<N, ESCAPING>

fn clone(&self) -> EscapeIterInner<N, ESCAPING>

Auto Trait Implementations

impl<const N: usize, ESCAPING> Freeze for EscapeIterInner<N, ESCAPING> where MaybeEscapedCharacter<N>: Freeze, PhantomData<ESCAPING>: Freeze,

impl<const N: usize, ESCAPING> RefUnwindSafe for EscapeIterInner<N, ESCAPING> where MaybeEscapedCharacter<N>: RefUnwindSafe, PhantomData<ESCAPING>: RefUnwindSafe,

impl<const N: usize, ESCAPING> Send for EscapeIterInner<N, ESCAPING> where MaybeEscapedCharacter<N>: Send, PhantomData<ESCAPING>: Send,

impl<const N: usize, ESCAPING> Sync for EscapeIterInner<N, ESCAPING> where MaybeEscapedCharacter<N>: Sync, PhantomData<ESCAPING>: Sync,

impl<const N: usize, ESCAPING> Unpin for EscapeIterInner<N, ESCAPING> where MaybeEscapedCharacter<N>: Unpin, PhantomData<ESCAPING>: Unpin,

impl<const N: usize, ESCAPING> UnsafeUnpin for EscapeIterInner<N, ESCAPING> where MaybeEscapedCharacter<N>: UnsafeUnpin, PhantomData<ESCAPING>: UnsafeUnpin,

impl<const N: usize, ESCAPING> UnwindSafe for EscapeIterInner<N, ESCAPING> where MaybeEscapedCharacter<N>: UnwindSafe, PhantomData<ESCAPING>: UnwindSafe,

Blanket Implementations

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

fn type_id(&self) -> TypeId

impl<T> Borrow<T> for EscapeIterInner<N, ESCAPING> where T: ?Sized,

fn borrow(&self) -> &T

impl<T> BorrowMut<T> for EscapeIterInner<N, ESCAPING> where T: ?Sized,

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

impl<T> CloneToUninit for EscapeIterInner<N, ESCAPING> where T: Clone,

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

impl<T> From<T> for EscapeIterInner<N, ESCAPING>

fn from(t: T) -> T

Returns the argument unchanged.

impl<T> SizeHint for EscapeIterInner<N, ESCAPING> where T: ?Sized,

fn lower_bound(&self) -> usize
fn upper_bound(&self) -> Option<usize>

impl<T> SizedTypeProperties for EscapeIterInner<N, ESCAPING>

impl<T, U> Into<U> for EscapeIterInner<N, ESCAPING> where U: From<T>,

fn into(self) -> U

Calls U::from(self).

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

impl<T, U> TryFrom<U> for EscapeIterInner<N, ESCAPING> where U: Into<T>,

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

impl<T, U> TryInto<U> for EscapeIterInner<N, ESCAPING> where U: TryFrom<T>,

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