Skip to main content

HideSets

Struct HideSets 

Source
pub struct HideSets { /* private fields */ }
Expand description

The interning table for hide sets.

Sets are stored sorted so that membership is a binary search and so that two sets built in different orders intern to the same index.

Implementations§

Source§

impl HideSets

Source

pub fn new() -> Self

A table containing only the empty set.

Source

pub fn members(&self, set: HideSet) -> &[Symbol]

The members of a set, sorted.

§Panics

Panics if the set came from a different table.

Source

pub fn len(&self) -> usize

How many distinct sets exist, which is the number worth watching on a macro heavy translation unit.

Source

pub fn is_empty(&self) -> bool

Always false: the table starts out holding the empty set.

Source

pub fn contains(&self, set: HideSet, name: Symbol) -> bool

Whether name is hidden by set.

§Panics

Panics if the set came from a different table.

Source

pub fn add(&mut self, set: HideSet, name: Symbol) -> HideSet

The set set with name added.

§Panics

Panics if the set came from a different table, or if more than u32::MAX distinct sets are interned, which would need a translation unit no machine can hold.

Source

pub fn union(&mut self, a: HideSet, b: HideSet) -> HideSet

The union of two sets.

Substitution unions the hide set being applied into whatever the token already carried, because an argument token arrives with the hide set it picked up where it was written and both restrictions have to hold.

§Panics

Panics if either set came from a different table.

Source

pub fn intersect(&mut self, a: HideSet, b: HideSet) -> HideSet

The intersection of two sets.

This is the operation function-like expansion needs: the hide set of the result is the intersection of the macro name token’s set and the closing parenthesis token’s set, per spec/05-preprocessor.md section 5.3.

§Panics

Panics if either set came from a different table.

Trait Implementations§

Source§

impl Debug for HideSets

Source§

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

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

impl Default for HideSets

Source§

fn default() -> Self

Returns the “default value” for a type. 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> 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, U> TryFrom<U> for T
where U: Into<T>,

Source§

type Error = !

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.