From a4a6726091b644c9838065fb1a1bdc594694e33a Mon Sep 17 00:00:00 2001 From: Joscha Date: Thu, 6 Jan 2022 18:22:18 +0100 Subject: [PATCH] Fix a few warnings --- src/cli.rs | 21 ++++------ src/cli/error.rs | 2 - src/cli/layout.rs | 12 ++---- src/cli/layout/day.rs | 3 +- src/cli/layout/line.rs | 94 ++++++++++++------------------------------ 5 files changed, 39 insertions(+), 93 deletions(-) diff --git a/src/cli.rs b/src/cli.rs index d1d9005..d54097f 100644 --- a/src/cli.rs +++ b/src/cli.rs @@ -86,13 +86,8 @@ fn find_entries(files: &Files, range: DateRange) -> Result, Error LineLayout { - layout::layout(files, entries, range, now) +fn find_layout(entries: &[Entry], range: DateRange, now: NaiveDateTime) -> LineLayout { + layout::layout(entries, range, now) } fn run_command( @@ -104,28 +99,28 @@ fn run_command( match &opt.command { None => { let entries = find_entries(files, range)?; - let layout = find_layout(files, &entries, range, now); + let layout = find_layout(&entries, range, now); print::print(&layout); } Some(Command::Show { entries: ns }) => { let entries = find_entries(files, range)?; - let layout = find_layout(files, &entries, range, now); + let layout = find_layout(&entries, range, now); show::show(files, &entries, &layout, ns)?; } Some(Command::Done { entries: ns }) => { let entries = find_entries(files, range)?; - let layout = find_layout(files, &entries, range, now); + let layout = find_layout(&entries, range, now); done::done(files, &entries, &layout, ns, now)?; let entries = find_entries(files, range)?; - let layout = find_layout(files, &entries, range, now); + let layout = find_layout(&entries, range, now); print::print(&layout); } Some(Command::Cancel { entries: ns }) => { let entries = find_entries(files, range)?; - let layout = find_layout(files, &entries, range, now); + let layout = find_layout(&entries, range, now); cancel::cancel(files, &entries, &layout, ns, now)?; let entries = find_entries(files, range)?; - let layout = find_layout(files, &entries, range, now); + let layout = find_layout(&entries, range, now); print::print(&layout); } Some(Command::Fmt) => files.mark_all_dirty(), diff --git a/src/cli/error.rs b/src/cli/error.rs index 725b2e3..a84a0df 100644 --- a/src/cli/error.rs +++ b/src/cli/error.rs @@ -1,5 +1,3 @@ -use std::result; - use codespan_reporting::files::Files; use codespan_reporting::term::Config; diff --git a/src/cli/layout.rs b/src/cli/layout.rs index 76575eb..9b8aa90 100644 --- a/src/cli/layout.rs +++ b/src/cli/layout.rs @@ -1,7 +1,6 @@ use chrono::NaiveDateTime; use crate::eval::{DateRange, Entry}; -use crate::files::Files; use self::day::DayLayout; use self::line::LineLayout; @@ -9,17 +8,12 @@ use self::line::LineLayout; mod day; pub mod line; -pub fn layout( - files: &Files, - entries: &[Entry], - range: DateRange, - now: NaiveDateTime, -) -> LineLayout { +pub fn layout(entries: &[Entry], range: DateRange, now: NaiveDateTime) -> LineLayout { let mut day_layout = DayLayout::new(range, now); - day_layout.layout(files, entries); + day_layout.layout(entries); let mut line_layout = LineLayout::new(); - line_layout.render(files, entries, &day_layout); + line_layout.render(entries, &day_layout); line_layout } diff --git a/src/cli/layout/day.rs b/src/cli/layout/day.rs index f3866a3..e0f2d17 100644 --- a/src/cli/layout/day.rs +++ b/src/cli/layout/day.rs @@ -9,7 +9,6 @@ use chrono::{NaiveDate, NaiveDateTime}; use crate::eval::{DateRange, Dates, Entry, EntryKind}; use crate::files::primitives::Time; -use crate::files::Files; #[derive(Debug)] pub enum DayEntry { @@ -47,7 +46,7 @@ impl DayLayout { } } - pub fn layout(&mut self, files: &Files, entries: &[Entry]) { + pub fn layout(&mut self, entries: &[Entry]) { self.insert(self.today, DayEntry::Now(self.time)); let mut entries = entries.iter().enumerate().collect::>(); diff --git a/src/cli/layout/line.rs b/src/cli/layout/line.rs index 78bbabc..a1127a5 100644 --- a/src/cli/layout/line.rs +++ b/src/cli/layout/line.rs @@ -9,7 +9,6 @@ use chrono::NaiveDate; use crate::eval::{Entry, EntryKind}; use crate::files::primitives::Time; -use crate::files::Files; use super::super::error::Error; use super::day::{DayEntry, DayLayout}; @@ -108,7 +107,7 @@ impl LineLayout { } } - pub fn render(&mut self, files: &Files, entries: &[Entry], layout: &DayLayout) { + pub fn render(&mut self, entries: &[Entry], layout: &DayLayout) { // Make sure spans for visible `*End`s are drawn for entry in &layout.earlier { match entry { @@ -128,7 +127,7 @@ impl LineLayout { let layout_entries = layout.days.get(&day).expect("got nonexisting day"); for layout_entry in layout_entries { - self.render_layout_entry(files, entries, layout_entry); + self.render_layout_entry(entries, layout_entry); } } } @@ -154,14 +153,11 @@ impl LineLayout { .ok_or(Error::NoSuchEntry(number)) } - fn render_layout_entry(&mut self, files: &Files, entries: &[Entry], l_entry: &DayEntry) { + fn render_layout_entry(&mut self, entries: &[Entry], l_entry: &DayEntry) { match l_entry { DayEntry::End(i) => { self.stop_span(*i); - let entry = &entries[*i]; - let kind = Self::entry_kind(entry); - let text = Self::entry_title(files, entry); - self.line_entry(Some(*i), Times::Untimed, kind, text, None); + self.line_entry(entries, *i, Times::Untimed, None); } DayEntry::Now(t) => self.line(LineEntry::Now { spans: self.spans_for_line(), @@ -169,75 +165,48 @@ impl LineLayout { }), DayEntry::TimedEnd(i, t) => { self.stop_span(*i); - let entry = &entries[*i]; - let kind = Self::entry_kind(entry); - let text = Self::entry_title(files, entry); - self.line_entry(Some(*i), Times::At(*t), kind, text, None); + self.line_entry(entries, *i, Times::At(*t), None); } DayEntry::TimedAt(i, t, t2) => { let time = t2 .map(|t2| Times::FromTo(*t, t2)) .unwrap_or_else(|| Times::At(*t)); - let entry = &entries[*i]; - let kind = Self::entry_kind(entry); - let text = Self::entry_title(files, entry); - self.line_entry(Some(*i), time, kind, text, None); + self.line_entry(entries, *i, time, None); } DayEntry::TimedStart(i, t) => { self.start_span(*i); - let entry = &entries[*i]; - let kind = Self::entry_kind(entry); - let text = Self::entry_title(files, entry); - self.line_entry(Some(*i), Times::At(*t), kind, text, None); + self.line_entry(entries, *i, Times::At(*t), None); } DayEntry::ReminderSince(i, d) => { - let entry = &entries[*i]; - let kind = Self::entry_kind(entry); - let text = Self::entry_title(files, entry); let extra = if *d == 1 { "yesterday".to_string() } else { format!("{} days ago", d) }; - self.line_entry(Some(*i), Times::Untimed, kind, text, Some(extra)); + self.line_entry(entries, *i, Times::Untimed, Some(extra)); } DayEntry::At(i) => { - let entry = &entries[*i]; - let kind = Self::entry_kind(entry); - let text = Self::entry_title(files, entry); - self.line_entry(Some(*i), Times::Untimed, kind, text, None); + self.line_entry(entries, *i, Times::Untimed, None); } DayEntry::ReminderWhile(i, d) => { - let entry = &entries[*i]; - let kind = Self::entry_kind(entry); - let text = Self::entry_title(files, entry); let plural = if *d == 1 { "" } else { "s" }; let extra = format!("{} day{} left", d, plural); - self.line_entry(Some(*i), Times::Untimed, kind, text, Some(extra)); + self.line_entry(entries, *i, Times::Untimed, Some(extra)); } DayEntry::Undated(i) => { - let entry = &entries[*i]; - let kind = Self::entry_kind(entry); - let text = Self::entry_title(files, entry); - self.line_entry(Some(*i), Times::Untimed, kind, text, None); + self.line_entry(entries, *i, Times::Untimed, None); } DayEntry::Start(i) => { self.start_span(*i); - let entry = &entries[*i]; - let kind = Self::entry_kind(entry); - let text = Self::entry_title(files, entry); - self.line_entry(Some(*i), Times::Untimed, kind, text, None); + self.line_entry(entries, *i, Times::Untimed, None); } DayEntry::ReminderUntil(i, d) => { - let entry = &entries[*i]; - let kind = Self::entry_kind(entry); - let text = Self::entry_title(files, entry); let extra = if *d == 1 { "tomorrow".to_string() } else { format!("in {} days", d) }; - self.line_entry(Some(*i), Times::Untimed, kind, text, Some(extra)); + self.line_entry(entries, *i, Times::Untimed, Some(extra)); } } } @@ -252,8 +221,7 @@ impl LineLayout { } } - fn entry_title(files: &Files, entry: &Entry) -> String { - let command = files.command(entry.source).command; + fn entry_title(entry: &Entry) -> String { match entry.kind { EntryKind::Birthday(Some(age)) => format!("{} ({})", entry.title, age), _ => entry.title.clone(), @@ -305,32 +273,24 @@ impl LineLayout { self.step_spans(); } - fn line_entry( - &mut self, - index: Option, - time: Times, - kind: LineKind, - text: String, - extra: Option, - ) { - let number = match index { - Some(index) => Some(match self.numbers.get(&index) { - Some(number) => *number, - None => { - self.last_number += 1; - self.numbers.insert(index, self.last_number); - self.last_number - } - }), - None => None, + fn line_entry(&mut self, entries: &[Entry], index: usize, time: Times, extra: Option) { + let entry = &entries[index]; + + let number = match self.numbers.get(&index) { + Some(number) => *number, + None => { + self.last_number += 1; + self.numbers.insert(index, self.last_number); + self.last_number + } }; self.line(LineEntry::Entry { - number, + number: Some(number), spans: self.spans_for_line(), time, - kind, - text, + kind: Self::entry_kind(entry), + text: Self::entry_title(entry), extra, }); }