Struct re_ui::list_item::scope::LayoutStatistics
source · struct LayoutStatistics {
max_desired_left_column_width: Option<f32>,
is_action_button_used: bool,
max_item_width: Option<f32>,
property_content_max_width: Option<f32>,
}
Expand description
Layout statistics accumulated during the frame that are used for next frame’s layout.
On frame n
, statistics are gathered by the super::ListItemContent
implementations and
stored in this structure (via LayoutInfo
methods). Then, it is saved in egui temporary memory
against the scope id. On frame n+1
, the accumulated values are used by list_item_scope
to
set up the LayoutInfo
and the accumulator is reset to restart the process.
Here is an illustration of the layout statistics that are gathered:
│◀──────────────────────get_full_span()─────────────────────▶│
│ │
│ ┌──left_x │
│ ▼ │
│ │ │ │ │
│ ┌───────────────────────────────────────────┐ │
│ │ │ │ │ │
│ └───┬────────────────────────────────────┬──┘ │
│ │ ▼ │ │ │ │ │
│ └───┬─────────────────────────┬──────┘ │
│ │ │ │ │ │ │
│ ├─────────────────────────┴────┐ │
│ │ ▼ │ │ │ │ │
│ └───┬──────────────────────────┴─────────┐ │
│ │ │ │ │ │
│ ├─────────────────────┬──────────────┘ │
│ │ ▶ │ │ │ │ │
│ ┌───────────┴─────────────────────┴──┐ │
│ │ │ │ │ │
│ └────────────────────────────────────┘ │
│ │ │ │ │
│ │
│ │◀──────────────────────▶ max_desired_left_column_width │
│ │
│ │◀───────────────max_item_width─────────────────▶│ │
Fields§
§max_desired_left_column_width: Option<f32>
Maximum desired column width.
The semantics are exactly the same as LayoutInfo
’s left_column_width
.
Track whether any item uses the action button.
If so, space for a right-aligned gutter should be reserved.
max_item_width: Option<f32>
Max item width.
The width is calculated from LayoutInfo::left_x
to the right edge of the item.
property_content_max_width: Option<f32>
PropertyContent
only — max content width in the current scope.
This value is measured from left_x
.
Implementations§
source§impl LayoutStatistics
impl LayoutStatistics
Trait Implementations§
source§impl Clone for LayoutStatistics
impl Clone for LayoutStatistics
source§fn clone(&self) -> LayoutStatistics
fn clone(&self) -> LayoutStatistics
1.0.0 · source§fn clone_from(&mut self, source: &Self)
fn clone_from(&mut self, source: &Self)
source
. Read moresource§impl Debug for LayoutStatistics
impl Debug for LayoutStatistics
source§impl Default for LayoutStatistics
impl Default for LayoutStatistics
source§fn default() -> LayoutStatistics
fn default() -> LayoutStatistics
Auto Trait Implementations§
impl Freeze for LayoutStatistics
impl RefUnwindSafe for LayoutStatistics
impl Send for LayoutStatistics
impl Sync for LayoutStatistics
impl Unpin for LayoutStatistics
impl UnwindSafe for LayoutStatistics
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> CheckedAs for T
impl<T> CheckedAs for T
source§fn checked_as<Dst>(self) -> Option<Dst>where
T: CheckedCast<Dst>,
fn checked_as<Dst>(self) -> Option<Dst>where
T: CheckedCast<Dst>,
source§impl<Src, Dst> CheckedCastFrom<Src> for Dstwhere
Src: CheckedCast<Dst>,
impl<Src, Dst> CheckedCastFrom<Src> for Dstwhere
Src: CheckedCast<Dst>,
source§fn checked_cast_from(src: Src) -> Option<Dst>
fn checked_cast_from(src: Src) -> Option<Dst>
§impl<T> Downcast for Twhere
T: Any,
impl<T> Downcast for Twhere
T: Any,
§fn into_any(self: Box<T>) -> Box<dyn Any>
fn into_any(self: Box<T>) -> Box<dyn Any>
Box<dyn Trait>
(where Trait: Downcast
) to Box<dyn Any>
. Box<dyn Any>
can
then be further downcast
into Box<ConcreteType>
where ConcreteType
implements Trait
.§fn into_any_rc(self: Rc<T>) -> Rc<dyn Any>
fn into_any_rc(self: Rc<T>) -> Rc<dyn Any>
Rc<Trait>
(where Trait: Downcast
) to Rc<Any>
. Rc<Any>
can then be
further downcast
into Rc<ConcreteType>
where ConcreteType
implements Trait
.§fn as_any(&self) -> &(dyn Any + 'static)
fn as_any(&self) -> &(dyn Any + 'static)
&Trait
(where Trait: Downcast
) to &Any
. This is needed since Rust cannot
generate &Any
’s vtable from &Trait
’s.§fn as_any_mut(&mut self) -> &mut (dyn Any + 'static)
fn as_any_mut(&mut self) -> &mut (dyn Any + 'static)
&mut Trait
(where Trait: Downcast
) to &Any
. This is needed since Rust cannot
generate &mut Any
’s vtable from &mut Trait
’s.§impl<T> DowncastSync for T
impl<T> DowncastSync for T
§impl<T> Instrument for T
impl<T> Instrument for T
§fn instrument(self, span: Span) -> Instrumented<Self>
fn instrument(self, span: Span) -> Instrumented<Self>
§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