Struct index_ext::tag::NonZeroLen

source ·
pub struct NonZeroLen<Tag> { /* private fields */ }
Expand description

The length of a non-empty slice.

Implementations§

source§

impl<T: Tag> NonZeroLen<T>

source

pub fn new(complete: Prefix<T>) -> Option<Self>

Construct the length of a non-empty slice.

source

pub fn with_tag<NewT>(self, less: TagLessEq<T, NewT>) -> NonZeroLen<NewT>

Interpret this with the tag of a potentially longer slice.

The proof of inequality was performed in any of the possible constructors that allow the instance of TagLessEq to exist in the first place.

source

pub fn first(self) -> Idx<usize, T>

Construct an index to the first element of a non-empty slice.

source

pub fn last(self) -> Idx<usize, T>

Construct an index to the last element of a non-empty slice.

source

pub fn into_len(self) -> Prefix<T>

Construct the corresponding potentially empty length representation.

source

pub fn get(self) -> NonZeroUsize

Get the non-zero length.

Trait Implementations§

source§

impl<Tag: Clone> Clone for NonZeroLen<Tag>

source§

fn clone(&self) -> NonZeroLen<Tag>

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<T: Tag> From<NonZeroLen<T>> for Prefix<T>

source§

fn from(from: NonZeroLen<T>) -> Self

Converts to this type from the input type.
source§

impl<Tag: Copy> Copy for NonZeroLen<Tag>

Auto Trait Implementations§

§

impl<Tag> RefUnwindSafe for NonZeroLen<Tag>
where Tag: RefUnwindSafe,

§

impl<Tag> Send for NonZeroLen<Tag>
where Tag: Send,

§

impl<Tag> Sync for NonZeroLen<Tag>
where Tag: Sync,

§

impl<Tag> Unpin for NonZeroLen<Tag>
where Tag: Unpin,

§

impl<Tag> UnwindSafe for NonZeroLen<Tag>
where Tag: 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> 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,

§

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>,

§

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>,

§

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.