Vixen
02b45cc4
csharp
public sealed class NameTable

Turns 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 None

    The id no name has.

  • public int Count

    How 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