pub struct LayoutOutput {
pub size: Size<f32>,
pub scrollable_overflow_rect: ScrollableOverflow,
pub baselines: Baselines,
pub top_margin: CollapsibleMarginSet,
pub bottom_margin: CollapsibleMarginSet,
pub margins_can_collapse_through: bool,
pub oof_candidates: OofCandidates,
pub oof_positioning_area: Option<OofPositioningArea>,
}Expand description
A struct containing the result of laying a single node, which is returned up to the parent node
A baseline is the line on which text sits. Your node likely has a baseline if it is a text node, or contains
children that may be text nodes. See https://www.w3.org/TR/css-writing-modes-3/#intro-baselines for details.
If your node does not have a baseline (or you are unsure how to compute it), then simply return Baselines::NONE
for the baselines field
Fields§
§size: Size<f32>The size of the node
scrollable_overflow_rect: ScrollableOverflowcontent_size only.The scrollable overflow rectangle of the node’s content
(see Layout::scrollable_overflow_rect for the coordinate conventions)
baselines: BaselinesThe first and last baselines of the node in the horizontal axis, if any
top_margin: CollapsibleMarginSetTop margin that can be collapsed with. This is used for CSS block layout and can be set to
CollapsibleMarginSet::ZERO for other layout modes that don’t support margin collapsing
bottom_margin: CollapsibleMarginSetBottom margin that can be collapsed with. This is used for CSS block layout and can be set to
CollapsibleMarginSet::ZERO for other layout modes that don’t support margin collapsing
margins_can_collapse_through: boolWhether margins can be collapsed through this node. This is used for CSS block layout and can
be set to false for other layout modes that don’t support margin collapsing
oof_candidates: OofCandidatesOut-of-flow (absolute/fixed) descendants of this node for which this node is not the containing block. These bubble up the tree until they reach their containing block, which lays them out. Empty (allocation-free) when there are no such descendants (the common case).
Candidates are only produced by RunMode::PerformLayout passes.
Container layout algorithms place the full document-ordered candidate list here (direct
out-of-flow children plus candidates bubbled from in-flow children). The out-of-flow
positioning pass (compute_oof_layout) then lays out those
for which the node is the containing block and replaces this list with the unclaimed
remainder.
oof_positioning_area: Option<OofPositioningArea>The node’s inset-resolution area for out-of-flow boxes. Set by container layout
algorithms for RunMode::PerformLayout runs; None for leaves and size-only runs
(in which case the out-of-flow positioning pass is a no-op).
Implementations§
Source§impl LayoutOutput
impl LayoutOutput
Sourcepub fn from_sizes_and_baselines(
size: Size<f32>,
scrollable_overflow_rect: ScrollableOverflow,
baselines: Baselines,
) -> Self
pub fn from_sizes_and_baselines( size: Size<f32>, scrollable_overflow_rect: ScrollableOverflow, baselines: Baselines, ) -> Self
Constructor to create a LayoutOutput from just the size, scrollable overflow rectangle and baselines
Sourcepub fn from_sizes(
size: Size<f32>,
scrollable_overflow_rect: ScrollableOverflow,
) -> Self
pub fn from_sizes( size: Size<f32>, scrollable_overflow_rect: ScrollableOverflow, ) -> Self
Construct a LayoutOutput from just the container size and scrollable overflow rectangle
Sourcepub fn transpose(self) -> Self
pub fn transpose(self) -> Self
Swap the horizontal and vertical axes of the output (inverse of LayoutInput::transpose).
Baselines and collapsible margins are block-axis quantities that have no meaning on the parent’s inline axis, so they are dropped. Out-of-flow candidates are unaffected.
Sourcepub fn from_outer_size(size: Size<f32>) -> Self
pub fn from_outer_size(size: Size<f32>) -> Self
Construct a LayoutOutput from just the container’s size.
Trait Implementations§
Source§impl Clone for LayoutOutput
impl Clone for LayoutOutput
Source§impl Debug for LayoutOutput
impl Debug for LayoutOutput
Source§impl PartialEq for LayoutOutput
impl PartialEq for LayoutOutput
Source§impl Serialize for LayoutOutput
Available on crate feature serde only.
impl Serialize for LayoutOutput
serde only.