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
impl Canvas
Sourcepub fn new(f: impl Fn(Rect, &mut Buffer) + Send + Sync + 'static) -> Self
pub fn new(f: impl Fn(Rect, &mut Buffer) + Send + Sync + 'static) -> Self
Create a new Canvas with the given render function.
Sourcepub fn with_height(self, h: u16) -> Self
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§
Auto Trait Implementations§
impl Freeze for Canvas
impl !RefUnwindSafe for Canvas
impl Send for Canvas
impl Sync for Canvas
impl Unpin for Canvas
impl UnsafeUnpin for Canvas
impl !UnwindSafe for Canvas
Blanket Implementations§
Source§impl<T, V> AddTo<DataChildren<T>> for Vwhere
V: Into<T>,
impl<T, V> AddTo<DataChildren<T>> for Vwhere
V: Into<T>,
Source§type Handle<'a> = DataHandle
where
T: 'a
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
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 Cwhere
C: Component,
impl<C> AddTo<Elements> for Cwhere
C: Component,
Source§type Handle<'a> = ElementHandle<'a>
type Handle<'a> = ElementHandle<'a>
Handle returned after adding. Supports
.key() / .width() chaining.Source§fn add_to(self, els: &mut Elements) -> ElementHandle<'_>
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> 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
Mutably borrows from an owned value. Read more
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>
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 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>
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