refactor: partition to a HashMap instead of a Vec
cargo devel CI / cargo CI (push) Successful in 1m52s Details

This commit is contained in:
Christoph J. Scherr 2024-07-17 16:50:32 +02:00
parent d6102dffa2
commit 700f236649
1 changed files with 12 additions and 7 deletions

View File

@ -13,6 +13,7 @@ use ratatui::layout::{Alignment, Constraint, Direction, Layout, Rect};
use ratatui::style::{Style, Stylize};
use ratatui::widgets::{Block, LineGauge, Padding, Paragraph};
use ratatui::Terminal;
use std::collections::HashMap;
use std::io::{Cursor, Stdout, Write};
use std::time::{Duration, Instant};
@ -304,8 +305,8 @@ impl Clock {
#[allow(clippy::cast_sign_loss)]
#[allow(clippy::cast_possible_truncation)]
let padding = [
(f32::from(parts[2].width) * 0.43) as u16,
(f32::from(parts[2].width) * 0.25) as u16,
(f32::from(parts["timebarw"].width) * 0.43) as u16,
(f32::from(parts["timebarw"].width) * 0.25) as u16,
];
let timebarw = LineGauge::default()
.filled_style(if self.did_notify {
@ -335,10 +336,10 @@ impl Clock {
.blue()
.block(Block::default().padding(Padding::right(2)))
.alignment(Alignment::Right);
frame.render_widget(&timebarw, parts[2]);
frame.render_widget(datew, parts[1]);
frame.render_widget(&timebarw, parts["timebarw"]);
frame.render_widget(datew, parts["datew"]);
// render the clock
frame.render_widget(clockw, parts[0]);
frame.render_widget(clockw, parts["clockw"]);
})?;
debug!("done rendering the ui");
Ok(())
@ -412,7 +413,7 @@ impl Clock {
std::io::stdout().flush()?;
Ok(())
}
fn partition(r: Rect) -> Vec<Rect> {
fn partition(r: Rect) -> HashMap<&'static str, Rect> {
let part = Layout::default()
.direction(Direction::Vertical)
.constraints([
@ -431,6 +432,10 @@ impl Clock {
])
.split(part[0]);
vec![part[1], subparts[0], subparts[1]]
HashMap::from([
("clockw", part[1]),
("timebarw", subparts[1]),
("datew", subparts[0]),
])
}
}