Struct layout_2020::flow::inline::LineUnderConstruction

source ·
struct LineUnderConstruction {
    start_position: LogicalVec2<Au>,
    inline_position: Au,
    max_block_size: LineBlockSizes,
    has_content: bool,
    has_floats_waiting_to_be_placed: bool,
    placement_among_floats: OnceCell<LogicalRect<Au>>,
    line_items: Vec<LineItem>,
}
Expand description

Information about the current line under construction for a particular InlineFormattingContextLayout. This tracks position and size information while LineItems are collected and is used as input when those LineItems are converted into Fragments during the final phase of line layout. Note that this does not store the LineItems themselves, as they are stored as part of the nesting state in the InlineFormattingContextLayout.

Fields§

§start_position: LogicalVec2<Au>

The position where this line will start once it is laid out. This includes any offset from text-indent.

§inline_position: Au

The current inline position in the line being laid out into LineItems in this InlineFormattingContext independent of the depth in the nesting level.

§max_block_size: LineBlockSizes

The maximum block size of all boxes that ended and are in progress in this line. This uses LineBlockSizes instead of a simple value, because the final block size depends on vertical alignment.

§has_content: bool

Whether any active linebox has added a glyph or atomic element to this line, which indicates that the next run that exceeds the line length can cause a line break.

§has_floats_waiting_to_be_placed: bool

Whether or not there are floats that did not fit on the current line. Before the LineItems of this line are laid out, these floats will need to be placed directly below this line, but still as children of this line’s Fragments.

§placement_among_floats: OnceCell<LogicalRect<Au>>

A rectangular area (relative to the containing block / inline formatting context boundaries) where we can fit the line box without overlapping floats. Note that when this is not empty, its start corner takes precedence over LineUnderConstruction::start_position.

§line_items: Vec<LineItem>

The LineItems for the current line under construction that have already been committed to this line.

Implementations§

source§

impl LineUnderConstruction

source

fn new(start_position: LogicalVec2<Au>) -> Self

source

fn line_block_start_considering_placement_among_floats(&self) -> Au

source

fn replace_placement_among_floats(&mut self, new_placement: LogicalRect<Au>)

source

fn trim_trailing_whitespace(&mut self) -> Au

Trim the trailing whitespace in this line and return the width of the whitespace trimmed.

source

fn count_justification_opportunities(&self) -> usize

Count the number of justification opportunities in this line.

Auto Trait Implementations§

Blanket Implementations§

source§

impl<T> Any for T
where T: 'static + ?Sized,

source§

fn type_id(&self) -> TypeId

Gets the TypeId of self. Read more
source§

impl<T> Borrow<T> for T
where T: ?Sized,

source§

fn borrow(&self) -> &T

Immutably borrows from an owned value. Read more
source§

impl<T> BorrowMut<T> for T
where T: ?Sized,

source§

fn borrow_mut(&mut self) -> &mut T

Mutably borrows from an owned value. Read more
source§

impl<T> Downcast<T> for T

source§

fn downcast(&self) -> &T

source§

impl<T> From<T> for T

source§

fn from(t: T) -> T

Returns the argument unchanged.

source§

impl<T> Instrument for T

source§

fn instrument(self, span: Span) -> Instrumented<Self>

Instruments this type with the provided Span, returning an Instrumented wrapper. Read more
source§

fn in_current_span(self) -> Instrumented<Self>

Instruments this type with the current Span, returning an Instrumented wrapper. Read more
source§

impl<T, U> Into<U> for T
where U: From<T>,

source§

fn into(self) -> U

Calls U::from(self).

That is, this conversion is whatever the implementation of From<T> for U chooses to do.

source§

impl<T> IntoEither for T

source§

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 more
source§

fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
where F: FnOnce(&Self) -> bool,

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 more
source§

impl<T> MaybeBoxed<Box<T>> for T

source§

fn maybe_boxed(self) -> Box<T>

Convert
source§

impl<T> MaybeBoxed<T> for T

source§

fn maybe_boxed(self) -> T

Convert
source§

impl<T> Pointable for T

source§

const ALIGN: usize = _

The alignment of pointer.
§

type Init = T

The type for initializers.
source§

unsafe fn init(init: <T as Pointable>::Init) -> usize

Initializes a with the given initializer. Read more
source§

unsafe fn deref<'a>(ptr: usize) -> &'a T

Dereferences the given pointer. Read more
source§

unsafe fn deref_mut<'a>(ptr: usize) -> &'a mut T

Mutably dereferences the given pointer. Read more
source§

unsafe fn drop(ptr: usize)

Drops the object pointed to by the given pointer. Read more
source§

impl<T> Same for T

§

type Output = T

Should always be Self
source§

impl<T, U> TryFrom<U> for T
where U: Into<T>,

§

type Error = Infallible

The type returned in the event of a conversion error.
source§

fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>

Performs the conversion.
source§

impl<T, U> TryInto<U> for T
where U: TryFrom<T>,

§

type Error = <U as TryFrom<T>>::Error

The type returned in the event of a conversion error.
source§

fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>

Performs the conversion.
source§

impl<T> Upcast<T> for T

source§

fn upcast(&self) -> Option<&T>

source§

impl<V, T> VZip<V> for T
where V: MultiLane<T>,

source§

fn vzip(self) -> V

source§

impl<T> WithSubscriber for T

source§

fn with_subscriber<S>(self, subscriber: S) -> WithDispatch<Self>
where S: Into<Dispatch>,

Attaches the provided Subscriber to this type, returning a WithDispatch wrapper. Read more
source§

fn with_current_subscriber(self) -> WithDispatch<Self>

Attaches the current default Subscriber to this type, returning a WithDispatch wrapper. Read more
source§

impl<T> ErasedDestructor for T
where T: 'static,

source§

impl<T> MaybeSendSync for T

source§

impl<T> WasmNotSend for T
where T: Send,