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