summaryrefslogtreecommitdiffstats
path: root/src/state.rs
diff options
context:
space:
mode:
authorJesse Luehrs <doy@tozt.net>2021-12-07 13:44:43 -0500
committerJesse Luehrs <doy@tozt.net>2021-12-07 13:44:43 -0500
commit08246280e5707cc6a3153efc9648e33d2e122054 (patch)
treed9bc45daedc70357417bb1d81a48aaf436176155 /src/state.rs
parent932a16d8fe617821a40332ec32ed9d5f682ca0dc (diff)
downloadnbsh-08246280e5707cc6a3153efc9648e33d2e122054.tar.gz
nbsh-08246280e5707cc6a3153efc9648e33d2e122054.zip
move from chrono to time
chrono seems a bit unmaintained, and has a more awkward api
Diffstat (limited to 'src/state.rs')
-rw-r--r--src/state.rs21
1 files changed, 15 insertions, 6 deletions
diff --git a/src/state.rs b/src/state.rs
index 155034e..a312d91 100644
--- a/src/state.rs
+++ b/src/state.rs
@@ -7,10 +7,11 @@ pub struct State {
scene: Scene,
escape: bool,
hide_readline: bool,
+ offset: time::UtcOffset,
}
impl State {
- pub fn new() -> Self {
+ pub fn new(offset: time::UtcOffset) -> Self {
let readline = crate::readline::Readline::new();
let history = crate::history::History::new();
let focus = Focus::Readline;
@@ -22,6 +23,7 @@ impl State {
scene,
escape: false,
hide_readline: false,
+ offset,
}
}
@@ -111,19 +113,26 @@ impl State {
Scene::Readline => match self.focus {
Focus::Readline => {
self.history
- .render(out, self.readline.lines(), None)
+ .render(out, self.readline.lines(), None, self.offset)
.await?;
- self.readline.render(out, true).await?;
+ self.readline.render(out, true, self.offset).await?;
}
Focus::History(idx) => {
if self.hide_readline {
- self.history.render(out, 0, Some(idx)).await?;
+ self.history
+ .render(out, 0, Some(idx), self.offset)
+ .await?;
} else {
self.history
- .render(out, self.readline.lines(), Some(idx))
+ .render(
+ out,
+ self.readline.lines(),
+ Some(idx),
+ self.offset,
+ )
.await?;
let pos = out.screen().cursor_position();
- self.readline.render(out, false).await?;
+ self.readline.render(out, false, self.offset).await?;
out.move_to(pos.0, pos.1);
}
}