Struct regex_automata::util::sparse_set::SparseSets

source ·
pub(crate) struct SparseSets {
    pub(crate) set1: SparseSet,
    pub(crate) set2: SparseSet,
}
Expand description

A pairse of sparse sets.

This is useful when one needs to compute NFA epsilon closures from a previous set of states derived from an epsilon closure. One set can be the starting states where as the other set can be the destination states after following the transitions for a particular byte of input.

There is no significance to ‘set1’ or ‘set2’. They are both sparse sets of the same size.

The members of this struct are exposed so that callers may borrow ‘set1’ and ‘set2’ individually without being force to borrow both at the same time.

Fields§

§set1: SparseSet§set2: SparseSet

Implementations§

source§

impl SparseSets

source

pub(crate) fn new(capacity: usize) -> SparseSets

Create a new pair of sparse sets where each set has the given capacity.

This panics if the capacity given is bigger than StateID::LIMIT.

source

pub(crate) fn resize(&mut self, new_capacity: usize)

Resizes these sparse sets to have the new capacity given.

The sets are automatically cleared.

This panics if the capacity given is bigger than StateID::LIMIT.

source

pub(crate) fn clear(&mut self)

Clear both sparse sets.

source

pub(crate) fn swap(&mut self)

Swap set1 with set2.

source

pub(crate) fn memory_usage(&self) -> usize

Returns the memory usage, in bytes, used by this pair of sparse sets.

Trait Implementations§

source§

impl Clone for SparseSets

source§

fn clone(&self) -> SparseSets

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 Debug for SparseSets

source§

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

Formats the value using the given formatter. Read more

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