summaryrefslogtreecommitdiffstats
path: root/src/main.rs
diff options
context:
space:
mode:
authorJesse Luehrs <doy@tozt.net>2021-11-10 13:29:43 -0500
committerJesse Luehrs <doy@tozt.net>2021-11-10 13:29:43 -0500
commit0d0380af5a90503e30ae6678c54d481eb81ceec1 (patch)
tree39d6ca743726364aa5e09e96407e8bc3165de108 /src/main.rs
parent84e8e53d3384402490c654d28f9c4182bd5f9afb (diff)
downloadnbsh-0d0380af5a90503e30ae6678c54d481eb81ceec1.tar.gz
nbsh-0d0380af5a90503e30ae6678c54d481eb81ceec1.zip
simplify
Diffstat (limited to 'src/main.rs')
-rw-r--r--src/main.rs14
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;
}