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
impl HideSets
Sourcepub fn len(&self) -> usize
pub fn len(&self) -> usize
How many distinct sets exist, which is the number worth watching on a macro heavy translation unit.
Sourcepub fn add(&mut self, set: HideSet, name: Symbol) -> HideSet
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.
Sourcepub fn union(&mut self, a: HideSet, b: HideSet) -> HideSet
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.
Sourcepub fn intersect(&mut self, a: HideSet, b: HideSet) -> HideSet
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.