Files
pulse-trader/pulse-ui/src/widget/mod.rs
T
2026-07-23 00:22:20 +02:00

44 lines
837 B
Rust

pub mod align;
pub mod dynamic;
pub mod input;
pub mod outline;
pub mod scroll;
pub mod spaced;
use crate::render::RenderScope;
pub trait Widget {
fn render(&self, scope: &mut RenderScope);
}
macro_rules! display_widget {
($t:ty) => {
impl Widget for $t {
fn render(&self, scope: &mut RenderScope) {
scope.draw_text(0, self);
}
}
};
}
display_widget!(&str);
display_widget!(String);
display_widget!(i8);
display_widget!(i16);
display_widget!(i32);
display_widget!(i64);
display_widget!(i128);
display_widget!(u8);
display_widget!(u16);
display_widget!(u32);
display_widget!(u64);
display_widget!(u128);
display_widget!(f32);
display_widget!(f64);
impl Widget for &dyn Widget {
fn render(&self, scope: &mut RenderScope) {
(*self).render(scope);
}
}