From a0d3e28a8b0f8630f1c3797677714ecc0cd17a96 Mon Sep 17 00:00:00 2001 From: Klesti Selimaj Date: Tue, 14 Jul 2026 12:15:50 -0400 Subject: [PATCH] App structure --- pulse-ui/src/lib.rs | 21 +++++++++++++++++++++ 1 file changed, 21 insertions(+) diff --git a/pulse-ui/src/lib.rs b/pulse-ui/src/lib.rs index 3318231..2bb5508 100644 --- a/pulse-ui/src/lib.rs +++ b/pulse-ui/src/lib.rs @@ -2,3 +2,24 @@ pub mod layout; pub mod render; pub mod unit; pub mod widget; + +pub trait App { + // Rendering + fn layout(&self) -> layout::Allocation; + fn render(&mut self, layout: layout::Allocation); + + // State + fn init(&mut self); + + fn update(&mut self); + + fn refresh(&mut self) { + self.render(self.layout()); + } + + // Run + fn run(&mut self) { + self.init(); + self.refresh(); + } +}