From 18685da28be0e959e2c28bf946c77fb8ef108b29 Mon Sep 17 00:00:00 2001 From: iris <2+iris@noreply.localhost> Date: Fri, 11 Sep 2026 12:30:33 -0400 Subject: [PATCH] Align desktop initializer arguments with builders --- examples/message_list/desktop.rs | 4 +--- examples/minimal/desktop.rs | 2 +- examples/task/desktop.rs | 2 +- examples/view/desktop.rs | 2 +- readme.md | 10 ++++++---- src/desktop/mod.rs | 6 +++--- 6 files changed, 13 insertions(+), 13 deletions(-) diff --git a/examples/message_list/desktop.rs b/examples/message_list/desktop.rs index e84ff8b..c847e11 100644 --- a/examples/message_list/desktop.rs +++ b/examples/message_list/desktop.rs @@ -6,7 +6,5 @@ mod app; fn main() { let attributes = WindowAttributes::default().with_inner_size(LogicalSize::new(420.0, 900.0)); - DesktopApp::::run_with_attributes(attributes, |ui_state, rsc| { - app::build(rsc, ui_state) - }); + DesktopApp::::run_with_attributes(attributes, app::build); } diff --git a/examples/minimal/desktop.rs b/examples/minimal/desktop.rs index d7d0199..50ca308 100644 --- a/examples/minimal/desktop.rs +++ b/examples/minimal/desktop.rs @@ -4,5 +4,5 @@ use iris::prelude::*; mod app; fn main() { - DesktopApp::::run_with(|ui_state, rsc| app::build(rsc, ui_state)); + DesktopApp::::run_with(app::build); } diff --git a/examples/task/desktop.rs b/examples/task/desktop.rs index d7d0199..50ca308 100644 --- a/examples/task/desktop.rs +++ b/examples/task/desktop.rs @@ -4,5 +4,5 @@ use iris::prelude::*; mod app; fn main() { - DesktopApp::::run_with(|ui_state, rsc| app::build(rsc, ui_state)); + DesktopApp::::run_with(app::build); } diff --git a/examples/view/desktop.rs b/examples/view/desktop.rs index d7d0199..50ca308 100644 --- a/examples/view/desktop.rs +++ b/examples/view/desktop.rs @@ -4,5 +4,5 @@ use iris::prelude::*; mod app; fn main() { - DesktopApp::::run_with(|ui_state, rsc| app::build(rsc, ui_state)); + DesktopApp::::run_with(app::build); } diff --git a/readme.md b/readme.md index 4043cec..9e34aa6 100644 --- a/readme.md +++ b/readme.md @@ -33,21 +33,23 @@ loader glue. An application with no state beyond the UI state receives ```rust use iris::prelude::*; +fn build(rsc: &mut Rsc, ui_state: &mut impl HasRoot) { + rect(PaintId::RED).set_root(rsc, ui_state); +} + #[iris::app_init] fn create( ui_state: &mut AndroidUiState, rsc: &mut StdRsc, ) { - rect(PaintId::RED).set_root(rsc, ui_state); + build(rsc, ui_state); } ``` Desktop has the corresponding initializer form: ```rust -DesktopApp::::run_with(|ui_state, rsc| { - rect(PaintId::RED).set_root(rsc, ui_state); -}); +DesktopApp::::run_with(build); ``` Background work updates either host through the same task context. An update diff --git a/src/desktop/mod.rs b/src/desktop/mod.rs index 25b1e2b..743bdf4 100644 --- a/src/desktop/mod.rs +++ b/src/desktop/mod.rs @@ -156,17 +156,17 @@ impl DesktopApp { impl DesktopApp { /// Runs an application whose only state is Iris's desktop UI state. - pub fn run_with(init: impl FnOnce(&mut DesktopUiState, &mut StdRsc) + 'static) { + pub fn run_with(init: impl FnOnce(&mut StdRsc, &mut DesktopUiState) + 'static) { Self::run_with_attributes(DesktopUiState::window_attributes(), init); } pub fn run_with_attributes( attributes: WindowAttributes, - init: impl FnOnce(&mut DesktopUiState, &mut StdRsc) + 'static, + init: impl FnOnce(&mut StdRsc, &mut DesktopUiState) + 'static, ) { App::::run_with(move |event_loop, proxy| { Self::new_with(event_loop, proxy, attributes, move |mut ui_state, rsc| { - init(&mut ui_state, rsc); + init(rsc, &mut ui_state); ui_state }) });