diff options
author | Jesse Luehrs <doy@tozt.net> | 2021-11-17 23:08:46 -0500 |
---|---|---|
committer | Jesse Luehrs <doy@tozt.net> | 2021-11-17 23:08:46 -0500 |
commit | dcbdc2a2c2acee0533108692d20457ac463aacc3 (patch) | |
tree | 015e6e22222b9afae4e53b21d476cb7399f6116d /src/main.rs | |
parent | 660653baf5942e29269f9196a3c7723acf0f6913 (diff) | |
download | nbsh-dcbdc2a2c2acee0533108692d20457ac463aacc3.tar.gz nbsh-dcbdc2a2c2acee0533108692d20457ac463aacc3.zip |
redraw the clock every second
Diffstat (limited to 'src/main.rs')
-rw-r--r-- | src/main.rs | 21 |
1 files changed, 21 insertions, 0 deletions
diff --git a/src/main.rs b/src/main.rs index 3953bd5..b3852cd 100644 --- a/src/main.rs +++ b/src/main.rs @@ -71,6 +71,27 @@ async fn async_main() -> anyhow::Result<()> { }); } + // redraw the clock every second + { + let action_w = action_w.clone(); + async_std::task::spawn(async move { + let first_sleep = 1_000_000_000_u64.saturating_sub( + chrono::Local::now().timestamp_subsec_nanos().into(), + ); + async_std::task::sleep(std::time::Duration::from_nanos( + first_sleep, + )) + .await; + let mut interval = async_std::stream::interval( + std::time::Duration::from_secs(1), + ); + action_w.send(crate::action::Action::Render).await.unwrap(); + while interval.next().await.is_some() { + action_w.send(crate::action::Action::Render).await.unwrap(); + } + }); + } + let debouncer = crate::action::debounce(action_r); while let Some(action) = debouncer.recv().await { state |