pub(crate) struct PaintTraversal<'a, Handler: PaintTraversalHandler> {
handler: &'a mut Handler,
outlines: Vec<(TraversalState, Arc<BoxFragment>)>,
floats: Vec<(TraversalState, Arc<BoxFragment>)>,
}Fields§
§handler: &'a mut Handler§outlines: Vec<(TraversalState, Arc<BoxFragment>)>§floats: Vec<(TraversalState, Arc<BoxFragment>)>Implementations§
Source§impl<'a, Handler: PaintTraversalHandler> PaintTraversal<'a, Handler>
impl<'a, Handler: PaintTraversalHandler> PaintTraversal<'a, Handler>
pub(crate) fn traverse( root_stacking_context: &StackingContext, handler: &'a mut Handler, )
Sourcefn traverse_stacking_context(
&mut self,
state: &TraversalState,
stacking_context: &StackingContext,
)
fn traverse_stacking_context( &mut self, state: &TraversalState, stacking_context: &StackingContext, )
fn traverse_stacking_context_inner( &mut self, state: &TraversalState, root: &BoxFragmentWithStyle<'_>, )
Sourcefn traverse_stacking_container(
&mut self,
state: &TraversalState,
root: &BoxFragmentWithStyle<'_>,
is_block_level: bool,
)
fn traverse_stacking_container( &mut self, state: &TraversalState, root: &BoxFragmentWithStyle<'_>, is_block_level: bool, )
An implementation of https://drafts.csswg.org/css-position-4/#paint-a-stacking-context that only implements the parts relevant to stacking containers. This is an optimization to avoid work when descending into positioned container and stacking context contents.
fn traverse_block_level_descendants_decorations( &mut self, state: &TraversalState, fragment: &Fragment, ) -> bool
fn traverse_line_boxes_and_replaced_for_box( &mut self, state: &TraversalState, fragment: &BoxFragmentWithStyle<'_>, at_root_of_stacking_context: bool, )
fn traverse_line_boxes_and_replaced( &mut self, state: &TraversalState, fragment: &Fragment, at_root_of_stacking_context: bool, )
fn traverse_fragment_in_a_line_box( &mut self, state: &TraversalState, fragment: &Fragment, )
Sourcefn traverse_box_in_a_line_box(
&mut self,
state: &TraversalState,
box_fragment: &BoxFragmentWithStyle<'_>,
at_stacking_context_root: bool,
)
fn traverse_box_in_a_line_box( &mut self, state: &TraversalState, box_fragment: &BoxFragmentWithStyle<'_>, at_stacking_context_root: bool, )
fn traverse_replaced_content( &mut self, state: &TraversalState, box_fragment: &Arc<BoxFragment>, )
fn handle_box( &mut self, state: &TraversalState, fragment: &BoxFragmentWithStyle<'_>, )
Auto Trait Implementations§
impl<'a, Handler> Freeze for PaintTraversal<'a, Handler>
impl<'a, Handler> !RefUnwindSafe for PaintTraversal<'a, Handler>
impl<'a, Handler> !Send for PaintTraversal<'a, Handler>
impl<'a, Handler> !Sync for PaintTraversal<'a, Handler>
impl<'a, Handler> Unpin for PaintTraversal<'a, Handler>
impl<'a, Handler> UnsafeUnpin for PaintTraversal<'a, Handler>
impl<'a, Handler> !UnwindSafe for PaintTraversal<'a, Handler>
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