public sealed class NameTableTurns the strings a selector and an element share into integers.
No guide page documents this yet — the page shows what the code says about itself.
Remarks
Matching asks "is this element's class list one of the ones this rule wants" tens of thousands of times a frame, and doing it on strings means a hash and a comparison every time. Interning once at parse time and at element-construction time makes the inner loop integer equality, which is the difference between a matcher that can run over a ten-thousand-row grid and one that cannot.
Names are compared ordinally and case-sensitively. That is not the HTML rule, and it is deliberate: VXML's own rule is that a PascalCase tag is a component and a lowercase tag is an intrinsic element ([09](../../docs/plan/09-ui-framework.md)), so case carries meaning and folding it away would make Button and button the same selector.
Fields and properties (2)
public const int NoneThe id no name has.
public int CountHow many distinct names have been interned.
Methods (3)
public int Intern(string name)Interns a name, adding it if it is new.
public int Lookup(string name)Looks a name up without interning it.
public string NameOf(int id)The name behind an id.
Used by (42, showing 40)
- AnimationTestsVixen.Ui.Styling.Tests
- AnimatorVixen.Ui.Styling
- BridgeFixtureVixen.Ui.Tests
- CascadeFixtureVixen.Ui.Styling.Tests
- ChildArenaTestsVixen.Ui.Styling.Tests
- CompactionTestsVixen.Ui.Styling.Tests
- ComputedStyleVixen.Ui.Styling
- DrawListBuilderVixen.Ui
- EdgeNamesVixen.Ui
- IncrementalDocumentTestsVixen.Ui.Tests
- IncrementalRestyleOracleTestsVixen.Ui.Styling.Tests
- InheritedPropertiesVixen.Ui.Styling
- KeywordsVixen.Ui
- LayoutStyleBuilderVixen.Ui
- MultipleAnimationTestsVixen.Ui.Styling.Tests
- PropertiesVixen.Ui
- RuleIndexVixen.Ui.Styling
- SelectorCompilerVixen.Ui.Styling
- SelectorMatcherVixen.Ui.Styling
- SelectorMatchingTestsVixen.Ui.Styling.Tests
- SimpleSelectorVixen.Ui.Styling
- StyleEngineVixen.Ui.Styling
- StyleFixtureVixen.Ui.Styling.Tests
- StyleResolverVixen.Ui.Styling
- StyleRuleSetVixen.Ui.Styling
- StyleSharingOracleTestsVixen.Ui.Styling.Tests
- StyleSheetLoaderVixen.Ui.Styling
- StyleTreeVixen.Ui.Styling
- StyleUpdaterVixen.Ui.Styling
- StyleValueVixen.Ui.Styling
- StyleValueParserVixen.Ui.Styling
- StyleValueTestsVixen.Ui.Styling.Tests
- ThemeAndScannerTestsVixen.Ui.Styling.Utilities.Tests
- TransitionParserVixen.Ui.Styling
- TransitionTestsVixen.Ui.Styling.Tests
- UiDocumentVixen.Ui
- UiElementVixen.Ui
- UiTestVixen.Ui.Testing
- UtilityFixtureVixen.Ui.Styling.Utilities.Tests
- UtilityGenerationTestsVixen.Ui.Styling.Utilities.Tests