mirror of
https://github.com/servo/servo.git
synced 2025-07-06 06:53:38 +01:00
Ideally we want to be able to borrow from the DOM during box construction but that's not playing very well at the moment with the current bridge between script and layout.
26 lines
823 B
Rust
26 lines
823 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::flow::inline::InlineLevelBox;
|
|
use crate::flow::BlockLevelBox;
|
|
use atomic_refcell::AtomicRefCell;
|
|
use servo_arc::Arc;
|
|
|
|
#[derive(Default)]
|
|
pub(crate) struct LayoutDataForElement {
|
|
pub(super) self_box: Arc<AtomicRefCell<Option<LayoutBox>>>,
|
|
pub(super) pseudo_elements: Option<Box<PseudoElementBoxes>>,
|
|
}
|
|
|
|
#[derive(Default)]
|
|
pub(super) struct PseudoElementBoxes {
|
|
pub before: Arc<AtomicRefCell<Option<LayoutBox>>>,
|
|
pub after: Arc<AtomicRefCell<Option<LayoutBox>>>,
|
|
}
|
|
|
|
pub(super) enum LayoutBox {
|
|
DisplayContents,
|
|
BlockLevel(Arc<BlockLevelBox>),
|
|
InlineLevel(Arc<InlineLevelBox>),
|
|
}
|