Fix a few warnings
This commit is contained in:
parent
3f5e06b113
commit
a4a6726091
5 changed files with 39 additions and 93 deletions
21
src/cli.rs
21
src/cli.rs
|
|
@ -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(),
|
||||
|
|
|
|||
|
|
@ -1,5 +1,3 @@
|
|||
use std::result;
|
||||
|
||||
use codespan_reporting::files::Files;
|
||||
use codespan_reporting::term::Config;
|
||||
|
||||
|
|
|
|||
|
|
@ -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
|
||||
}
|
||||
|
|
|
|||
|
|
@ -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<_>>();
|
||||
|
|
|
|||
|
|
@ -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) {
|
||||
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<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
|
||||
}
|
||||
};
|
||||
|
||||
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,
|
||||
});
|
||||
}
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue