mirror of
https://github.com/servo/servo.git
synced 2025-06-24 17:14:33 +01:00
There are duplicate sets of Layout DOM wrappers: one for Layout 2013 and one for Layout 2020. As part of cleaning up and simplifying the wrappers, this change parameterizes them on the specific layout data they contain. This allows them to be shared again. In addition, various small cleanups are included. Fixes #29691.
25 lines
877 B
Rust
25 lines
877 B
Rust
/* This Source Code Form is subject to the terms of the Mozilla Public
|
|
* License, v. 2.0. If a copy of the MPL was not distributed with this
|
|
* file, You can obtain one at https://mozilla.org/MPL/2.0/. */
|
|
|
|
use crate::cell::ArcRefCell;
|
|
use crate::flexbox::FlexLevelBox;
|
|
use crate::flow::inline::InlineLevelBox;
|
|
use crate::flow::BlockLevelBox;
|
|
use script_layout_interface::wrapper_traits::LayoutDataTrait;
|
|
|
|
#[derive(Default)]
|
|
pub struct LayoutDataForElement {
|
|
pub(super) self_box: ArcRefCell<Option<LayoutBox>>,
|
|
pub(super) pseudo_before_box: ArcRefCell<Option<LayoutBox>>,
|
|
pub(super) pseudo_after_box: ArcRefCell<Option<LayoutBox>>,
|
|
}
|
|
|
|
pub(super) enum LayoutBox {
|
|
DisplayContents,
|
|
BlockLevel(ArcRefCell<BlockLevelBox>),
|
|
InlineLevel(ArcRefCell<InlineLevelBox>),
|
|
FlexLevel(ArcRefCell<FlexLevelBox>),
|
|
}
|
|
|
|
impl LayoutDataTrait for LayoutDataForElement {}
|