Skip to main content

TextLayout

Struct TextLayout 

Source
pub struct TextLayout<'a> {
    line: &'a Line,
    rect: Rect,
    h_align: HAlign,
    v_align: VAlign,
}
Expand description

Builder for laying out a Line within a bounded Rect.

Call measure to get TextMetrics without touching any terminal, or render to write directly into a Terminal.

§Example

use retroglyph::layout::{TextLayout, HAlign, VAlign};
use retroglyph::grid::Rect;
use retroglyph::text::Line;

let rect = Rect::new(0, 0, 20, 5);
let line = Line::raw("Hello, world!");

let metrics = TextLayout::new(&line)
    .rect(rect)
    .h_align(HAlign::Center)
    .measure();

assert_eq!(metrics.height, 1);

Fields§

§line: &'a Line§rect: Rect§h_align: HAlign§v_align: VAlign

Implementations§

Source§

impl<'a> TextLayout<'a>

Source

pub const fn new(line: &'a Line) -> Self

Creates a new layout builder for line.

Defaults: zero-sized rect at origin, left/top alignment. Call rect before measure or render.

Source

pub const fn rect(self, rect: Rect) -> Self

Sets the bounding rectangle.

Source

pub const fn h_align(self, align: HAlign) -> Self

Sets the horizontal alignment.

Source

pub const fn v_align(self, align: VAlign) -> Self

Sets the vertical alignment.

Source

pub fn measure(&self) -> TextMetrics

Measures the text without rendering, returning its TextMetrics.

Uses the rect’s width for word-wrapping; ignores height.

Source

pub fn render<B: Backend>(&self, terminal: &mut Terminal<B>)

Renders the text into terminal, clipping to the rect’s bounds.

Auto Trait Implementations§

§

impl<'a> Freeze for TextLayout<'a>

§

impl<'a> RefUnwindSafe for TextLayout<'a>

§

impl<'a> Send for TextLayout<'a>

§

impl<'a> Sync for TextLayout<'a>

§

impl<'a> Unpin for TextLayout<'a>

§

impl<'a> UnsafeUnpin for TextLayout<'a>

§

impl<'a> UnwindSafe for TextLayout<'a>

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> From<T> for T

Source§

fn from(t: T) -> T

Returns the argument unchanged.

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, U> TryFrom<U> for T
where U: Into<T>,

Source§

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>,

Source§

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.