mirror of
https://github.com/servo/servo.git
synced 2025-08-15 02:15:33 +01:00
Add slots in PerPseudoElementMap for tree pseudos.
This commit is contained in:
parent
b743d68ccd
commit
4ce3dc7729
6 changed files with 203 additions and 185 deletions
|
@ -185,6 +185,12 @@ pub const EAGER_PSEUDO_COUNT: usize = 4;
|
|||
/// The number of non-functional pseudo-elements.
|
||||
pub const SIMPLE_PSEUDO_COUNT: usize = 71;
|
||||
|
||||
/// The number of tree pseudo-elements.
|
||||
pub const TREE_PSEUDO_COUNT: usize = 12;
|
||||
|
||||
/// The number of all pseudo-elements.
|
||||
pub const PSEUDO_COUNT: usize = 83;
|
||||
|
||||
/// The list of eager pseudos.
|
||||
pub const EAGER_PSEUDOS: [PseudoElement; EAGER_PSEUDO_COUNT] = [
|
||||
PseudoElement::Before,
|
||||
|
@ -286,162 +292,184 @@ impl PseudoElement {
|
|||
}
|
||||
}
|
||||
|
||||
/// Returns an index if the pseudo-element is a simple (non-functional)
|
||||
/// pseudo.
|
||||
/// Returns an index of the pseudo-element.
|
||||
#[inline]
|
||||
pub fn simple_index(&self) -> Option<usize> {
|
||||
pub fn index(&self) -> usize {
|
||||
match *self {
|
||||
PseudoElement::After => Some(0),
|
||||
PseudoElement::Before => Some(1),
|
||||
PseudoElement::Backdrop => Some(2),
|
||||
PseudoElement::Cue => Some(3),
|
||||
PseudoElement::FirstLetter => Some(4),
|
||||
PseudoElement::FirstLine => Some(5),
|
||||
PseudoElement::MozSelection => Some(6),
|
||||
PseudoElement::MozFocusInner => Some(7),
|
||||
PseudoElement::MozFocusOuter => Some(8),
|
||||
PseudoElement::MozListBullet => Some(9),
|
||||
PseudoElement::MozListNumber => Some(10),
|
||||
PseudoElement::MozMathAnonymous => Some(11),
|
||||
PseudoElement::MozNumberWrapper => Some(12),
|
||||
PseudoElement::MozNumberText => Some(13),
|
||||
PseudoElement::MozNumberSpinBox => Some(14),
|
||||
PseudoElement::MozNumberSpinUp => Some(15),
|
||||
PseudoElement::MozNumberSpinDown => Some(16),
|
||||
PseudoElement::MozProgressBar => Some(17),
|
||||
PseudoElement::MozRangeTrack => Some(18),
|
||||
PseudoElement::MozRangeProgress => Some(19),
|
||||
PseudoElement::MozRangeThumb => Some(20),
|
||||
PseudoElement::MozMeterBar => Some(21),
|
||||
PseudoElement::MozPlaceholder => Some(22),
|
||||
PseudoElement::Placeholder => Some(23),
|
||||
PseudoElement::MozColorSwatch => Some(24),
|
||||
PseudoElement::MozText => Some(25),
|
||||
PseudoElement::OofPlaceholder => Some(26),
|
||||
PseudoElement::FirstLetterContinuation => Some(27),
|
||||
PseudoElement::MozBlockInsideInlineWrapper => Some(28),
|
||||
PseudoElement::MozMathMLAnonymousBlock => Some(29),
|
||||
PseudoElement::MozXULAnonymousBlock => Some(30),
|
||||
PseudoElement::HorizontalFramesetBorder => Some(31),
|
||||
PseudoElement::VerticalFramesetBorder => Some(32),
|
||||
PseudoElement::MozLineFrame => Some(33),
|
||||
PseudoElement::ButtonContent => Some(34),
|
||||
PseudoElement::CellContent => Some(35),
|
||||
PseudoElement::DropDownList => Some(36),
|
||||
PseudoElement::FieldsetContent => Some(37),
|
||||
PseudoElement::FramesetBlank => Some(38),
|
||||
PseudoElement::MozDisplayComboboxControlFrame => Some(39),
|
||||
PseudoElement::HtmlCanvasContent => Some(40),
|
||||
PseudoElement::InlineTable => Some(41),
|
||||
PseudoElement::Table => Some(42),
|
||||
PseudoElement::TableCell => Some(43),
|
||||
PseudoElement::TableColGroup => Some(44),
|
||||
PseudoElement::TableCol => Some(45),
|
||||
PseudoElement::TableWrapper => Some(46),
|
||||
PseudoElement::TableRowGroup => Some(47),
|
||||
PseudoElement::TableRow => Some(48),
|
||||
PseudoElement::Canvas => Some(49),
|
||||
PseudoElement::PageBreak => Some(50),
|
||||
PseudoElement::Page => Some(51),
|
||||
PseudoElement::PageContent => Some(52),
|
||||
PseudoElement::PageSequence => Some(53),
|
||||
PseudoElement::ScrolledContent => Some(54),
|
||||
PseudoElement::ScrolledCanvas => Some(55),
|
||||
PseudoElement::ScrolledPageSequence => Some(56),
|
||||
PseudoElement::ColumnContent => Some(57),
|
||||
PseudoElement::Viewport => Some(58),
|
||||
PseudoElement::ViewportScroll => Some(59),
|
||||
PseudoElement::AnonymousFlexItem => Some(60),
|
||||
PseudoElement::AnonymousGridItem => Some(61),
|
||||
PseudoElement::Ruby => Some(62),
|
||||
PseudoElement::RubyBase => Some(63),
|
||||
PseudoElement::RubyBaseContainer => Some(64),
|
||||
PseudoElement::RubyText => Some(65),
|
||||
PseudoElement::RubyTextContainer => Some(66),
|
||||
PseudoElement::MozSVGMarkerAnonChild => Some(67),
|
||||
PseudoElement::MozSVGOuterSVGAnonChild => Some(68),
|
||||
PseudoElement::MozSVGForeignContent => Some(69),
|
||||
PseudoElement::MozSVGText => Some(70),
|
||||
_ => None,
|
||||
PseudoElement::After => 0,
|
||||
PseudoElement::Before => 1,
|
||||
PseudoElement::Backdrop => 2,
|
||||
PseudoElement::Cue => 3,
|
||||
PseudoElement::FirstLetter => 4,
|
||||
PseudoElement::FirstLine => 5,
|
||||
PseudoElement::MozSelection => 6,
|
||||
PseudoElement::MozFocusInner => 7,
|
||||
PseudoElement::MozFocusOuter => 8,
|
||||
PseudoElement::MozListBullet => 9,
|
||||
PseudoElement::MozListNumber => 10,
|
||||
PseudoElement::MozMathAnonymous => 11,
|
||||
PseudoElement::MozNumberWrapper => 12,
|
||||
PseudoElement::MozNumberText => 13,
|
||||
PseudoElement::MozNumberSpinBox => 14,
|
||||
PseudoElement::MozNumberSpinUp => 15,
|
||||
PseudoElement::MozNumberSpinDown => 16,
|
||||
PseudoElement::MozProgressBar => 17,
|
||||
PseudoElement::MozRangeTrack => 18,
|
||||
PseudoElement::MozRangeProgress => 19,
|
||||
PseudoElement::MozRangeThumb => 20,
|
||||
PseudoElement::MozMeterBar => 21,
|
||||
PseudoElement::MozPlaceholder => 22,
|
||||
PseudoElement::Placeholder => 23,
|
||||
PseudoElement::MozColorSwatch => 24,
|
||||
PseudoElement::MozText => 25,
|
||||
PseudoElement::OofPlaceholder => 26,
|
||||
PseudoElement::FirstLetterContinuation => 27,
|
||||
PseudoElement::MozBlockInsideInlineWrapper => 28,
|
||||
PseudoElement::MozMathMLAnonymousBlock => 29,
|
||||
PseudoElement::MozXULAnonymousBlock => 30,
|
||||
PseudoElement::HorizontalFramesetBorder => 31,
|
||||
PseudoElement::VerticalFramesetBorder => 32,
|
||||
PseudoElement::MozLineFrame => 33,
|
||||
PseudoElement::ButtonContent => 34,
|
||||
PseudoElement::CellContent => 35,
|
||||
PseudoElement::DropDownList => 36,
|
||||
PseudoElement::FieldsetContent => 37,
|
||||
PseudoElement::FramesetBlank => 38,
|
||||
PseudoElement::MozDisplayComboboxControlFrame => 39,
|
||||
PseudoElement::HtmlCanvasContent => 40,
|
||||
PseudoElement::InlineTable => 41,
|
||||
PseudoElement::Table => 42,
|
||||
PseudoElement::TableCell => 43,
|
||||
PseudoElement::TableColGroup => 44,
|
||||
PseudoElement::TableCol => 45,
|
||||
PseudoElement::TableWrapper => 46,
|
||||
PseudoElement::TableRowGroup => 47,
|
||||
PseudoElement::TableRow => 48,
|
||||
PseudoElement::Canvas => 49,
|
||||
PseudoElement::PageBreak => 50,
|
||||
PseudoElement::Page => 51,
|
||||
PseudoElement::PageContent => 52,
|
||||
PseudoElement::PageSequence => 53,
|
||||
PseudoElement::ScrolledContent => 54,
|
||||
PseudoElement::ScrolledCanvas => 55,
|
||||
PseudoElement::ScrolledPageSequence => 56,
|
||||
PseudoElement::ColumnContent => 57,
|
||||
PseudoElement::Viewport => 58,
|
||||
PseudoElement::ViewportScroll => 59,
|
||||
PseudoElement::AnonymousFlexItem => 60,
|
||||
PseudoElement::AnonymousGridItem => 61,
|
||||
PseudoElement::Ruby => 62,
|
||||
PseudoElement::RubyBase => 63,
|
||||
PseudoElement::RubyBaseContainer => 64,
|
||||
PseudoElement::RubyText => 65,
|
||||
PseudoElement::RubyTextContainer => 66,
|
||||
PseudoElement::MozTreeColumn(..) => 67,
|
||||
PseudoElement::MozTreeRow(..) => 68,
|
||||
PseudoElement::MozTreeSeparator(..) => 69,
|
||||
PseudoElement::MozTreeCell(..) => 70,
|
||||
PseudoElement::MozTreeIndentation(..) => 71,
|
||||
PseudoElement::MozTreeLine(..) => 72,
|
||||
PseudoElement::MozTreeTwisty(..) => 73,
|
||||
PseudoElement::MozTreeImage(..) => 74,
|
||||
PseudoElement::MozTreeCellText(..) => 75,
|
||||
PseudoElement::MozTreeCheckbox(..) => 76,
|
||||
PseudoElement::MozTreeProgressmeter(..) => 77,
|
||||
PseudoElement::MozTreeDropFeedback(..) => 78,
|
||||
PseudoElement::MozSVGMarkerAnonChild => 79,
|
||||
PseudoElement::MozSVGOuterSVGAnonChild => 80,
|
||||
PseudoElement::MozSVGForeignContent => 81,
|
||||
PseudoElement::MozSVGText => 82,
|
||||
}
|
||||
}
|
||||
|
||||
/// Returns an array of `None` values.
|
||||
///
|
||||
/// FIXME(emilio): Integer generics can't come soon enough.
|
||||
pub fn simple_pseudo_none_array<T>() -> [Option<T>; SIMPLE_PSEUDO_COUNT] {
|
||||
pub fn pseudo_none_array<T>() -> [Option<T>; PSEUDO_COUNT] {
|
||||
[
|
||||
None,
|
||||
None,
|
||||
None,
|
||||
None,
|
||||
None,
|
||||
None,
|
||||
None,
|
||||
None,
|
||||
None,
|
||||
None,
|
||||
None,
|
||||
None,
|
||||
None,
|
||||
None,
|
||||
None,
|
||||
None,
|
||||
None,
|
||||
None,
|
||||
None,
|
||||
None,
|
||||
None,
|
||||
None,
|
||||
None,
|
||||
None,
|
||||
None,
|
||||
None,
|
||||
None,
|
||||
None,
|
||||
None,
|
||||
None,
|
||||
None,
|
||||
None,
|
||||
None,
|
||||
None,
|
||||
None,
|
||||
None,
|
||||
None,
|
||||
None,
|
||||
None,
|
||||
None,
|
||||
None,
|
||||
None,
|
||||
None,
|
||||
None,
|
||||
None,
|
||||
None,
|
||||
None,
|
||||
None,
|
||||
None,
|
||||
None,
|
||||
None,
|
||||
None,
|
||||
None,
|
||||
None,
|
||||
None,
|
||||
None,
|
||||
None,
|
||||
None,
|
||||
None,
|
||||
None,
|
||||
None,
|
||||
None,
|
||||
None,
|
||||
None,
|
||||
None,
|
||||
None,
|
||||
None,
|
||||
None,
|
||||
None,
|
||||
None,
|
||||
None
|
||||
None,
|
||||
None,
|
||||
None,
|
||||
None,
|
||||
None,
|
||||
None,
|
||||
None,
|
||||
None,
|
||||
None,
|
||||
None,
|
||||
None,
|
||||
None,
|
||||
None,
|
||||
None,
|
||||
None,
|
||||
None,
|
||||
None,
|
||||
None,
|
||||
None,
|
||||
None,
|
||||
None,
|
||||
None,
|
||||
None,
|
||||
None,
|
||||
None,
|
||||
None,
|
||||
None,
|
||||
None,
|
||||
None,
|
||||
None,
|
||||
None,
|
||||
None,
|
||||
None,
|
||||
None,
|
||||
None,
|
||||
None,
|
||||
None,
|
||||
None,
|
||||
None,
|
||||
None,
|
||||
None,
|
||||
None,
|
||||
None,
|
||||
None,
|
||||
None,
|
||||
None,
|
||||
None,
|
||||
None,
|
||||
None,
|
||||
None,
|
||||
None,
|
||||
None,
|
||||
None,
|
||||
None,
|
||||
None,
|
||||
None,
|
||||
None,
|
||||
None,
|
||||
None,
|
||||
None,
|
||||
None,
|
||||
None,
|
||||
None,
|
||||
None,
|
||||
None,
|
||||
None,
|
||||
None,
|
||||
None,
|
||||
None,
|
||||
None,
|
||||
None,
|
||||
None,
|
||||
None,
|
||||
None,
|
||||
None,
|
||||
None,
|
||||
None,
|
||||
None,
|
||||
None,
|
||||
None,
|
||||
None,
|
||||
None
|
||||
]
|
||||
}
|
||||
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue