struct UnbreakableSegmentUnderConstruction {
inline_size: Au,
max_block_size: LineBlockSizes,
line_items: Vec<LineItem>,
has_content: bool,
incorporates_trailing_white_space: bool,
trailing_hangable_white_space: Au,
trailing_removable_white_space: Au,
}Expand description
The current unbreakable segment under construction for an inline formatting context. Items accumulate here until we reach a soft line break opportunity during processing of inline content or we reach the end of the formatting context.
Fields§
§inline_size: AuThe size of this unbreakable segment in both dimension.
max_block_size: LineBlockSizesThe maximum block size that this segment has. This uses LineBlockSizes instead of a
simple value, because the final block size depends on vertical alignment.
line_items: Vec<LineItem>The LineItems for the segment under construction
has_content: boolWhether any active linebox has added a glyph or atomic element to this line segment, which indicates that the next run that exceeds the line length can cause a line break.
incorporates_trailing_white_space: boolWhether or not this segment incorporates the trailing white space that came before it on the line into the line’s content.
trailing_hangable_white_space: AuThe inline size of any trailing hangable white space in this segment.
trailing_removable_white_space: AuThe inline size of any trailing removable white space in this segment.
Implementations§
Source§impl UnbreakableSegmentUnderConstruction
impl UnbreakableSegmentUnderConstruction
fn new() -> Self
Sourcefn push_line_item(&mut self, line_item: LineItem)
fn push_line_item(&mut self, line_item: LineItem)
Push a single line item to this segment.
Sourcefn trim_leading_whitespace(&mut self)
fn trim_leading_whitespace(&mut self)
Trim whitespace from the beginning of this UnbreakbleSegmentUnderConstruction.
From https://www.w3.org/TR/css-text-3/#white-space-phase-2:
Then, the entire block is rendered. Inlines are laid out, taking bidi reordering into account, and wrapping as specified by the text-wrap property. As each line is laid out,
- A sequence of collapsible spaces at the beginning of a line is removed.
This prevents whitespace from being added to the beginning of a line.
Sourcefn is_phantom(&self) -> bool
fn is_phantom(&self) -> bool
Whether this is segment is phantom. If false, its line box won’t be phantom. https://drafts.csswg.org/css-inline-3/#invisible-line-boxes
Sourcefn trailing_inline_box_start_size(&self) -> Au
fn trailing_inline_box_start_size(&self) -> Au
The size of the inline padding, border, and margin start edge of all trailing opening inline boxes on this segment. In addition, if those inline boxes will clone their box decorations, include the size of the cloned end padding, border, and margin as well.
Sourcefn hanging_and_removable_white_space_advance(&self) -> Au
fn hanging_and_removable_white_space_advance(&self) -> Au
The advance of the whitespace at the end of this segment that would either hang or be trimmed if it was at the end of a line.
Auto Trait Implementations§
impl Freeze for UnbreakableSegmentUnderConstruction
impl !RefUnwindSafe for UnbreakableSegmentUnderConstruction
impl !Send for UnbreakableSegmentUnderConstruction
impl !Sync for UnbreakableSegmentUnderConstruction
impl Unpin for UnbreakableSegmentUnderConstruction
impl UnsafeUnpin for UnbreakableSegmentUnderConstruction
impl !UnwindSafe for UnbreakableSegmentUnderConstruction
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
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>
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>
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 more