netgauze_locate

Struct BinarySpan

Source
pub struct BinarySpan<T> { /* private fields */ }
Expand description

Cloned from the crate nom_locate but with the omission of computing the line & column number since we don’t care about them in binary protocols, and they do make using the LocateSpan slower.

Implementations§

Source§

impl<T> BinarySpan<T>

Source

pub const fn new(buffer: T) -> Self

Source

pub const unsafe fn new_from_raw_offset(offset: usize, fragment: T) -> Self

Similar to new_extra, but allows overriding offset.

§Safety

This is unsafe, because giving an offset too large may result in undefined behavior, as some methods move back along the fragment assuming any negative index within the offset is valid.

Source

pub const fn new_extra(program: T) -> BinarySpan<T>

Source

pub const fn location_offset(&self) -> usize

Source

pub const fn fragment(&self) -> &T

Trait Implementations§

Source§

impl<T: AsBytes> AsBytes for BinarySpan<T>

Source§

fn as_bytes(&self) -> &[u8]

Casts the input type to a byte slice
Source§

impl<T, U> AsRef<U> for BinarySpan<&T>
where T: ?Sized + AsRef<U>, U: ?Sized,

Source§

fn as_ref(&self) -> &U

Converts this type into a shared reference of the (usually inferred) input type.
Source§

impl<T: Clone> Clone for BinarySpan<T>

Source§

fn clone(&self) -> BinarySpan<T>

Returns a copy 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<A: Compare<B>, B: Into<BinarySpan<B>>> Compare<B> for BinarySpan<A>

Source§

fn compare(&self, t: B) -> CompareResult

Compares self to another value for equality
Source§

fn compare_no_case(&self, t: B) -> CompareResult

Compares self to another value for equality independently of the case. Read more
Source§

impl<T: Debug> Debug for BinarySpan<T>

Source§

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

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

impl<T> Deref for BinarySpan<T>

Source§

type Target = T

The resulting type after dereferencing.
Source§

fn deref(&self) -> &Self::Target

Dereferences the value.
Source§

impl<T: AsBytes> From<T> for BinarySpan<T>

Source§

fn from(i: T) -> Self

Converts to this type from the input type.
Source§

impl<T> InputIter for BinarySpan<T>
where T: InputIter,

Source§

type Item = <T as InputIter>::Item

The current input type is a sequence of that Item type. Read more
Source§

type Iter = <T as InputIter>::Iter

An iterator over the input type, producing the item and its position for use with Slice. If we’re iterating over &str, the position corresponds to the byte index of the character
Source§

type IterElem = <T as InputIter>::IterElem

An iterator over the input type, producing the item
Source§

fn iter_indices(&self) -> Self::Iter

Returns an iterator over the elements and their byte offsets
Source§

fn iter_elements(&self) -> Self::IterElem

Returns an iterator over the elements
Source§

fn position<P>(&self, predicate: P) -> Option<usize>
where P: Fn(Self::Item) -> bool,

Finds the byte position of the element
Source§

fn slice_index(&self, count: usize) -> Result<usize, Needed>

Get the byte offset from the element’s position in the stream
Source§

impl<T: InputLength> InputLength for BinarySpan<T>

Source§

fn input_len(&self) -> usize

Calculates the input length, as indicated by its name, and the name of the trait itself
Source§

impl<T> InputTake for BinarySpan<T>
where Self: Slice<RangeFrom<usize>> + Slice<RangeTo<usize>>,

Source§

fn take(&self, count: usize) -> Self

Returns a slice of count bytes. panics if count > length
Source§

fn take_split(&self, count: usize) -> (Self, Self)

Split the stream at the count byte offset. panics if count > length
Source§

impl<T: AsBytes + PartialEq> PartialEq for BinarySpan<T>

Source§

fn eq(&self, other: &Self) -> 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<T, R> Slice<R> for BinarySpan<T>
where T: Slice<R> + Offset + AsBytes + Slice<RangeTo<usize>>,

Source§

fn slice(&self, range: R) -> Self

Slices self according to the range argument
Source§

impl<T: Copy> Copy for BinarySpan<T>

Source§

impl<T: AsBytes + Eq> Eq for BinarySpan<T>

Auto Trait Implementations§

§

impl<T> Freeze for BinarySpan<T>
where T: Freeze,

§

impl<T> RefUnwindSafe for BinarySpan<T>
where T: RefUnwindSafe,

§

impl<T> Send for BinarySpan<T>
where T: Send,

§

impl<T> Sync for BinarySpan<T>
where T: Sync,

§

impl<T> Unpin for BinarySpan<T>
where T: Unpin,

§

impl<T> UnwindSafe for BinarySpan<T>
where T: UnwindSafe,

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, dst: *mut T)

🔬This is a nightly-only experimental API. (clone_to_uninit)
Performs copy-assignment from self to dst. 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.