Skip to main content

Layoutable

Trait Layoutable 

Source
pub trait Layoutable {
    // Required methods
    fn measure(&self, ctx: &LayoutCtx<'_>, constraints: Constraints) -> Size;
    fn layout(
        &self,
        ctx: &LayoutCtx<'_>,
        area: Rect,
        warnings: &mut Vec<LayoutWarning>,
        page: usize,
    ) -> LayoutResult;
}
Expand description

measure/layout. Implemented for every concrete element type (not Element variants with todo!(), since all V1-through-Phase-2 variants are implemented) plus a dispatching impl on Element itself so containers can recurse over Vec<Element> children.

Required Methods§

Source

fn measure(&self, ctx: &LayoutCtx<'_>, constraints: Constraints) -> Size

Source

fn layout( &self, ctx: &LayoutCtx<'_>, area: Rect, warnings: &mut Vec<LayoutWarning>, page: usize, ) -> LayoutResult

Dyn Compatibility§

This trait is dyn compatible.

In older versions of Rust, dyn compatibility was called "object safety".

Implementations on Foreign Types§

Source§

impl Layoutable for Column

Source§

fn measure(&self, ctx: &LayoutCtx<'_>, constraints: Constraints) -> Size

Source§

fn layout( &self, ctx: &LayoutCtx<'_>, area: Rect, warnings: &mut Vec<LayoutWarning>, page: usize, ) -> LayoutResult

Source§

impl Layoutable for Element

Source§

fn measure(&self, ctx: &LayoutCtx<'_>, constraints: Constraints) -> Size

Source§

fn layout( &self, ctx: &LayoutCtx<'_>, area: Rect, warnings: &mut Vec<LayoutWarning>, page: usize, ) -> LayoutResult

Source§

impl Layoutable for Image

Source§

fn measure(&self, _ctx: &LayoutCtx<'_>, constraints: Constraints) -> Size

Source§

fn layout( &self, _ctx: &LayoutCtx<'_>, area: Rect, _warnings: &mut Vec<LayoutWarning>, _page: usize, ) -> LayoutResult

Source§

impl Layoutable for Line

Source§

fn measure(&self, _ctx: &LayoutCtx<'_>, constraints: Constraints) -> Size

Source§

fn layout( &self, _ctx: &LayoutCtx<'_>, area: Rect, warnings: &mut Vec<LayoutWarning>, page: usize, ) -> LayoutResult

Source§

impl Layoutable for List

Source§

fn measure(&self, ctx: &LayoutCtx<'_>, constraints: Constraints) -> Size

Source§

fn layout( &self, ctx: &LayoutCtx<'_>, area: Rect, warnings: &mut Vec<LayoutWarning>, page: usize, ) -> LayoutResult

Source§

impl Layoutable for Rect

Source§

fn measure(&self, _ctx: &LayoutCtx<'_>, constraints: Constraints) -> Size

Source§

fn layout( &self, _ctx: &LayoutCtx<'_>, area: Rect, _warnings: &mut Vec<LayoutWarning>, _page: usize, ) -> LayoutResult

Source§

impl Layoutable for Row

Source§

fn measure(&self, ctx: &LayoutCtx<'_>, constraints: Constraints) -> Size

Source§

fn layout( &self, ctx: &LayoutCtx<'_>, area: Rect, warnings: &mut Vec<LayoutWarning>, page: usize, ) -> LayoutResult

Source§

impl Layoutable for Spacer

Source§

fn measure(&self, _ctx: &LayoutCtx<'_>, _constraints: Constraints) -> Size

Source§

fn layout( &self, _ctx: &LayoutCtx<'_>, _area: Rect, _warnings: &mut Vec<LayoutWarning>, _page: usize, ) -> LayoutResult

Source§

impl Layoutable for Table

Source§

fn measure(&self, ctx: &LayoutCtx<'_>, constraints: Constraints) -> Size

Source§

fn layout( &self, ctx: &LayoutCtx<'_>, area: Rect, warnings: &mut Vec<LayoutWarning>, page: usize, ) -> LayoutResult

Source§

impl Layoutable for Text

Source§

fn measure(&self, ctx: &LayoutCtx<'_>, constraints: Constraints) -> Size

Source§

fn layout( &self, ctx: &LayoutCtx<'_>, area: Rect, warnings: &mut Vec<LayoutWarning>, page: usize, ) -> LayoutResult

Implementors§