Iris's decision: it lives in this repository for now, included by path, with its history left in the iris/iris repository on the gitea remote (this is its main at 7b54aaf, byte-identical to the public GitHub copy). It gets its own repository back once it has proved itself here. RUST.md's I0 records the decision and what the first build said: the tree does not compile on the current nightly because const_trait_impl now requires traits to be declared 'const trait', which is the first item of I0b. Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
35 lines
866 B
Rust
35 lines
866 B
Rust
use iris::prelude::*;
|
|
use std::time::Duration;
|
|
|
|
fn main() {
|
|
DefaultApp::<State>::run();
|
|
}
|
|
|
|
#[derive(DefaultUiState)]
|
|
struct State {
|
|
ui_state: DefaultUiState,
|
|
}
|
|
|
|
impl DefaultAppState for State {
|
|
fn new(
|
|
mut ui_state: DefaultUiState,
|
|
rsc: &mut DefaultRsc<Self>,
|
|
_: Proxy<Self::Event>,
|
|
) -> Self {
|
|
let rect = rect(Color::RED).add(rsc);
|
|
rect.task_on(CursorSense::click(), async move |mut ctx| {
|
|
tokio::time::sleep(Duration::from_secs(1)).await;
|
|
ctx.update(move |_, rsc| {
|
|
let rect = rect(rsc);
|
|
if rect.color == Color::RED {
|
|
rect.color = Color::BLUE;
|
|
} else {
|
|
rect.color = Color::RED;
|
|
}
|
|
});
|
|
})
|
|
.set_root(rsc, &mut ui_state);
|
|
Self { ui_state }
|
|
}
|
|
}
|