Skip to main content

Canvas

Struct Canvas 

Source
pub struct Canvas {
    pub render_fn: Box<dyn Fn(Rect, &mut Buffer) + Send + Sync>,
    pub height: Option<u16>,
    pub desired_height_fn: Option<Box<dyn Fn(u16) -> u16 + Send + Sync>>,
}
Expand description

A leaf component that renders via a user-provided closure.

See the module-level docs for examples.

Fields§

§render_fn: Box<dyn Fn(Rect, &mut Buffer) + Send + Sync>§height: Option<u16>§desired_height_fn: Option<Box<dyn Fn(u16) -> u16 + Send + Sync>>

Width-aware height function. Takes priority over height. When set, the framework calls this instead of probe rendering.

Implementations§

Source§

impl Canvas

Source

pub fn builder() -> CanvasBuilder<((), (), ())>

Create a builder for building Canvas. On the builder, call .render_fn(...)(optional), .height(...)(optional), .desired_height_fn(...)(optional) to set the values of the fields. Finally, call .build() to create the instance of Canvas.

Source§

impl Canvas

Source

pub fn new(f: impl Fn(Rect, &mut Buffer) + Send + Sync + 'static) -> Self

Create a new Canvas with the given render function.

Source

pub fn with_height(self, h: u16) -> Self

Set an explicit height hint, skipping probe-render measurement.

Use this for components that fill their entire area (e.g., bordered widgets) where probe rendering would keep growing the buffer.

Trait Implementations§

Source§

impl Component for Canvas

Source§

type State = ()

State type for this component. The framework wraps it in Tracked<S> for automatic dirty detection.
Source§

fn update( &self, hooks: &mut Hooks<Self, Self::State>, state: &Self::State, children: Elements, ) -> Elements
where Self: Sized,

Combined lifecycle and view in a single call. Read more

Auto Trait Implementations§

Blanket Implementations§

Source§

impl<T, V> AddTo<DataChildren<T>> for V
where V: Into<T>,

Source§

type Handle<'a> = DataHandle where T: 'a

Handle returned after adding. Supports .key() / .width() chaining.
Source§

fn add_to(self, collector: &mut DataChildren<T>) -> DataHandle

Add this value to the collector, returning a handle for chaining .key() and .width().
Source§

impl<C> AddTo<Elements> for C
where C: Component,

Source§

type Handle<'a> = ElementHandle<'a>

Handle returned after adding. Supports .key() / .width() chaining.
Source§

fn add_to(self, els: &mut Elements) -> ElementHandle<'_>

Add this value to the collector, returning a handle for chaining .key() and .width().
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> 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, 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.