Fix a few warnings

This commit is contained in:
Joscha 2022-01-06 18:22:18 +01:00
parent 3f5e06b113
commit a4a6726091
5 changed files with 39 additions and 93 deletions

View file

@ -86,13 +86,8 @@ fn find_entries(files: &Files, range: DateRange) -> Result<Vec<Entry>, Error<Fil
Ok(files.eval(EntryMode::Relevant, range)?)
}
fn find_layout(
files: &Files,
entries: &[Entry],
range: DateRange,
now: NaiveDateTime,
) -> 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(),

View file

@ -1,5 +1,3 @@
use std::result;
use codespan_reporting::files::Files;
use codespan_reporting::term::Config;

View file

@ -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
}

View file

@ -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::<Vec<_>>();

View file

@ -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<usize>,
time: Times,
kind: LineKind,
text: String,
extra: Option<String>,
) {
let number = match index {
Some(index) => Some(match self.numbers.get(&index) {
fn line_entry(&mut self, entries: &[Entry], index: usize, time: Times, extra: Option<String>) {
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
}
}),
None => None,
};
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,
});
}