pub(crate) struct ModernContainerBuilder<'a, 'dom> {
context: &'a LayoutContext<'a>,
info: &'a NodeAndStyleInfo<'dom>,
anonymous_info: OnceLock<NodeAndStyleInfo<'dom>>,
propagated_data: PropagatedBoxTreeData,
contiguous_text_runs: Vec<ModernContainerTextRun<'dom>>,
jobs: Vec<ModernContainerJob<'dom>>,
has_text_runs: bool,
display_contents_shared_styles: Vec<SharedInlineStyles>,
}Expand description
A builder used for both flex and grid containers.
Fields§
§context: &'a LayoutContext<'a>§info: &'a NodeAndStyleInfo<'dom>§anonymous_info: OnceLock<NodeAndStyleInfo<'dom>>A NodeAndStyleInfo to use for anonymous box children. Only initialized if
there is such a child.
propagated_data: PropagatedBoxTreeData§contiguous_text_runs: Vec<ModernContainerTextRun<'dom>>§jobs: Vec<ModernContainerJob<'dom>>To be run in parallel with rayon in finish
has_text_runs: boolA stack of display: contents styles currently in scope. This matters because
display: contents elements do not generate boxes but still provide styling
for their children, and text runs which get different styles due to that can be
wrapped into the same anonymous flex/grid item.
Implementations§
Source§impl<'a, 'dom> ModernContainerBuilder<'a, 'dom>
impl<'a, 'dom> ModernContainerBuilder<'a, 'dom>
pub fn new( context: &'a LayoutContext<'a>, info: &'a NodeAndStyleInfo<'dom>, propagated_data: PropagatedBoxTreeData, ) -> Self
fn anonymous_info(&self) -> &NodeAndStyleInfo<'dom>
fn wrap_any_text_in_anonymous_block_container(&mut self)
pub(crate) fn finish(self) -> Vec<ModernItem<'dom>>
Trait Implementations§
Source§impl<'dom> TraversalHandler<'dom> for ModernContainerBuilder<'_, 'dom>
impl<'dom> TraversalHandler<'dom> for ModernContainerBuilder<'_, 'dom>
Source§fn handle_element(
&mut self,
info: &NodeAndStyleInfo<'dom>,
display: DisplayGeneratingBox,
contents: Contents,
box_slot: BoxSlot<'dom>,
)
fn handle_element( &mut self, info: &NodeAndStyleInfo<'dom>, display: DisplayGeneratingBox, contents: Contents, box_slot: BoxSlot<'dom>, )
Or pseudo-element
fn handle_text(&mut self, info: &NodeAndStyleInfo<'dom>, text: Cow<'dom, str>)
Source§fn enter_display_contents(&mut self, styles: SharedInlineStyles)
fn enter_display_contents(&mut self, styles: SharedInlineStyles)
Notify the handler that we are about to recurse into a
display: contents element.Source§fn leave_display_contents(&mut self)
fn leave_display_contents(&mut self)
Notify the handler that we have finished a
display: contents element.Auto Trait Implementations§
impl<'a, 'dom> !Freeze for ModernContainerBuilder<'a, 'dom>
impl<'a, 'dom> !RefUnwindSafe for ModernContainerBuilder<'a, 'dom>
impl<'a, 'dom> Send for ModernContainerBuilder<'a, 'dom>
impl<'a, 'dom> Sync for ModernContainerBuilder<'a, 'dom>
impl<'a, 'dom> Unpin for ModernContainerBuilder<'a, 'dom>
impl<'a, 'dom> !UnwindSafe for ModernContainerBuilder<'a, 'dom>
Blanket Implementations§
Source§impl<T> BorrowMut<T> for Twhere
T: ?Sized,
impl<T> BorrowMut<T> for Twhere
T: ?Sized,
Source§fn borrow_mut(&mut self) -> &mut T
fn borrow_mut(&mut self) -> &mut T
Mutably borrows from an owned value. Read more
Source§impl<T> Filterable for T
impl<T> Filterable for T
Source§fn filterable(
self,
filter_name: &'static str,
) -> RequestFilterDataProvider<T, fn(DataRequest<'_>) -> bool>
fn filterable( self, filter_name: &'static str, ) -> RequestFilterDataProvider<T, fn(DataRequest<'_>) -> bool>
Creates a filterable data provider with the given name for debugging. Read more
Source§impl<T> Instrument for T
impl<T> Instrument for T
Source§fn instrument(self, span: Span) -> Instrumented<Self>
fn instrument(self, span: Span) -> Instrumented<Self>
Source§fn in_current_span(self) -> Instrumented<Self>
fn in_current_span(self) -> Instrumented<Self>
Source§impl<T> IntoEither for T
impl<T> IntoEither for T
Source§fn into_either(self, into_left: bool) -> Either<Self, Self>
fn into_either(self, into_left: bool) -> Either<Self, Self>
Converts
self into a Left variant of Either<Self, Self>
if into_left is true.
Converts self into a Right variant of Either<Self, Self>
otherwise. Read moreSource§fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
Converts
self into a Left variant of Either<Self, Self>
if into_left(&self) returns true.
Converts self into a Right variant of Either<Self, Self>
otherwise. Read moreSource§impl<T> MaybeBoxed<Box<T>> for T
impl<T> MaybeBoxed<Box<T>> for T
Source§fn maybe_boxed(self) -> Box<T>
fn maybe_boxed(self) -> Box<T>
Convert
Source§impl<T> MaybeBoxed<T> for T
impl<T> MaybeBoxed<T> for T
Source§fn maybe_boxed(self) -> T
fn maybe_boxed(self) -> T
Convert