diff options
author | Jesse Luehrs <doy@tozt.net> | 2021-11-10 13:29:43 -0500 |
---|---|---|
committer | Jesse Luehrs <doy@tozt.net> | 2021-11-10 13:29:43 -0500 |
commit | 0d0380af5a90503e30ae6678c54d481eb81ceec1 (patch) | |
tree | 39d6ca743726364aa5e09e96407e8bc3165de108 /src/main.rs | |
parent | 84e8e53d3384402490c654d28f9c4182bd5f9afb (diff) | |
download | nbsh-0d0380af5a90503e30ae6678c54d481eb81ceec1.tar.gz nbsh-0d0380af5a90503e30ae6678c54d481eb81ceec1.zip |
simplify
Diffstat (limited to 'src/main.rs')
-rw-r--r-- | src/main.rs | 14 |
1 files changed, 5 insertions, 9 deletions
diff --git a/src/main.rs b/src/main.rs index 666b936..fe259fa 100644 --- a/src/main.rs +++ b/src/main.rs @@ -19,25 +19,21 @@ async fn async_main() -> anyhow::Result<()> { let (action_w, action_r) = async_std::channel::unbounded(); - let state = util::mutex(state::State::new(action_w)); + let mut state = state::State::new(action_w, output); + state.render().await.unwrap(); - state.lock_arc().await.render(&mut output).await.unwrap(); + let state = util::mutex(state); { let state = async_std::sync::Arc::clone(&state); async_std::task::spawn(async move { while let Ok(action) = action_r.recv().await { - state - .lock_arc() - .await - .handle_action(action, &mut output) - .await; + state.lock_arc().await.handle_action(action).await; } }); } - loop { - let key = input.read_key().await.unwrap(); + while let Some(key) = input.read_key().await.unwrap() { if state.lock_arc().await.handle_input(key).await { break; } |