mirror of
https://github.com/danbulant/cushy
synced 2026-05-21 05:08:36 +00:00
31 lines
816 B
Rust
31 lines
816 B
Rust
use std::time::Duration;
|
|
|
|
use cushy::value::{Destination, Dynamic};
|
|
use cushy::widget::MakeWidget;
|
|
use cushy::widgets::progress::Progressable;
|
|
use cushy::{Open, PendingApp, TokioRuntime};
|
|
use tokio::time::sleep;
|
|
|
|
fn main() {
|
|
let app = PendingApp::new(TokioRuntime::default());
|
|
let progress = Dynamic::new(0_u8);
|
|
let progress_bar = progress.clone().progress_bar();
|
|
"Press Me"
|
|
.into_button()
|
|
.on_click(move |_| {
|
|
tokio::spawn(do_something(progress.clone()));
|
|
})
|
|
.and(progress_bar)
|
|
.into_rows()
|
|
.centered()
|
|
.expand()
|
|
.run_in(app)
|
|
.expect("error starting Cushy");
|
|
}
|
|
|
|
async fn do_something(progress: Dynamic<u8>) {
|
|
for i in 0..u8::MAX {
|
|
progress.set(i);
|
|
sleep(Duration::from_millis(10)).await
|
|
}
|
|
}
|