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)?)
|
Ok(files.eval(EntryMode::Relevant, range)?)
|
||||||
}
|
}
|
||||||
|
|
||||||
fn find_layout(
|
fn find_layout(entries: &[Entry], range: DateRange, now: NaiveDateTime) -> LineLayout {
|
||||||
files: &Files,
|
layout::layout(entries, range, now)
|
||||||
entries: &[Entry],
|
|
||||||
range: DateRange,
|
|
||||||
now: NaiveDateTime,
|
|
||||||
) -> LineLayout {
|
|
||||||
layout::layout(files, entries, range, now)
|
|
||||||
}
|
}
|
||||||
|
|
||||||
fn run_command(
|
fn run_command(
|
||||||
|
|
@ -104,28 +99,28 @@ fn run_command(
|
||||||
match &opt.command {
|
match &opt.command {
|
||||||
None => {
|
None => {
|
||||||
let entries = find_entries(files, range)?;
|
let entries = find_entries(files, range)?;
|
||||||
let layout = find_layout(files, &entries, range, now);
|
let layout = find_layout(&entries, range, now);
|
||||||
print::print(&layout);
|
print::print(&layout);
|
||||||
}
|
}
|
||||||
Some(Command::Show { entries: ns }) => {
|
Some(Command::Show { entries: ns }) => {
|
||||||
let entries = find_entries(files, range)?;
|
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)?;
|
show::show(files, &entries, &layout, ns)?;
|
||||||
}
|
}
|
||||||
Some(Command::Done { entries: ns }) => {
|
Some(Command::Done { entries: ns }) => {
|
||||||
let entries = find_entries(files, range)?;
|
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)?;
|
done::done(files, &entries, &layout, ns, now)?;
|
||||||
let entries = find_entries(files, range)?;
|
let entries = find_entries(files, range)?;
|
||||||
let layout = find_layout(files, &entries, range, now);
|
let layout = find_layout(&entries, range, now);
|
||||||
print::print(&layout);
|
print::print(&layout);
|
||||||
}
|
}
|
||||||
Some(Command::Cancel { entries: ns }) => {
|
Some(Command::Cancel { entries: ns }) => {
|
||||||
let entries = find_entries(files, range)?;
|
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)?;
|
cancel::cancel(files, &entries, &layout, ns, now)?;
|
||||||
let entries = find_entries(files, range)?;
|
let entries = find_entries(files, range)?;
|
||||||
let layout = find_layout(files, &entries, range, now);
|
let layout = find_layout(&entries, range, now);
|
||||||
print::print(&layout);
|
print::print(&layout);
|
||||||
}
|
}
|
||||||
Some(Command::Fmt) => files.mark_all_dirty(),
|
Some(Command::Fmt) => files.mark_all_dirty(),
|
||||||
|
|
|
||||||
|
|
@ -1,5 +1,3 @@
|
||||||
use std::result;
|
|
||||||
|
|
||||||
use codespan_reporting::files::Files;
|
use codespan_reporting::files::Files;
|
||||||
use codespan_reporting::term::Config;
|
use codespan_reporting::term::Config;
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -1,7 +1,6 @@
|
||||||
use chrono::NaiveDateTime;
|
use chrono::NaiveDateTime;
|
||||||
|
|
||||||
use crate::eval::{DateRange, Entry};
|
use crate::eval::{DateRange, Entry};
|
||||||
use crate::files::Files;
|
|
||||||
|
|
||||||
use self::day::DayLayout;
|
use self::day::DayLayout;
|
||||||
use self::line::LineLayout;
|
use self::line::LineLayout;
|
||||||
|
|
@ -9,17 +8,12 @@ use self::line::LineLayout;
|
||||||
mod day;
|
mod day;
|
||||||
pub mod line;
|
pub mod line;
|
||||||
|
|
||||||
pub fn layout(
|
pub fn layout(entries: &[Entry], range: DateRange, now: NaiveDateTime) -> LineLayout {
|
||||||
files: &Files,
|
|
||||||
entries: &[Entry],
|
|
||||||
range: DateRange,
|
|
||||||
now: NaiveDateTime,
|
|
||||||
) -> LineLayout {
|
|
||||||
let mut day_layout = DayLayout::new(range, now);
|
let mut day_layout = DayLayout::new(range, now);
|
||||||
day_layout.layout(files, entries);
|
day_layout.layout(entries);
|
||||||
|
|
||||||
let mut line_layout = LineLayout::new();
|
let mut line_layout = LineLayout::new();
|
||||||
line_layout.render(files, entries, &day_layout);
|
line_layout.render(entries, &day_layout);
|
||||||
|
|
||||||
line_layout
|
line_layout
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -9,7 +9,6 @@ use chrono::{NaiveDate, NaiveDateTime};
|
||||||
|
|
||||||
use crate::eval::{DateRange, Dates, Entry, EntryKind};
|
use crate::eval::{DateRange, Dates, Entry, EntryKind};
|
||||||
use crate::files::primitives::Time;
|
use crate::files::primitives::Time;
|
||||||
use crate::files::Files;
|
|
||||||
|
|
||||||
#[derive(Debug)]
|
#[derive(Debug)]
|
||||||
pub enum DayEntry {
|
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));
|
self.insert(self.today, DayEntry::Now(self.time));
|
||||||
|
|
||||||
let mut entries = entries.iter().enumerate().collect::<Vec<_>>();
|
let mut entries = entries.iter().enumerate().collect::<Vec<_>>();
|
||||||
|
|
|
||||||
|
|
@ -9,7 +9,6 @@ use chrono::NaiveDate;
|
||||||
|
|
||||||
use crate::eval::{Entry, EntryKind};
|
use crate::eval::{Entry, EntryKind};
|
||||||
use crate::files::primitives::Time;
|
use crate::files::primitives::Time;
|
||||||
use crate::files::Files;
|
|
||||||
|
|
||||||
use super::super::error::Error;
|
use super::super::error::Error;
|
||||||
use super::day::{DayEntry, DayLayout};
|
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
|
// Make sure spans for visible `*End`s are drawn
|
||||||
for entry in &layout.earlier {
|
for entry in &layout.earlier {
|
||||||
match entry {
|
match entry {
|
||||||
|
|
@ -128,7 +127,7 @@ impl LineLayout {
|
||||||
|
|
||||||
let layout_entries = layout.days.get(&day).expect("got nonexisting day");
|
let layout_entries = layout.days.get(&day).expect("got nonexisting day");
|
||||||
for layout_entry in layout_entries {
|
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))
|
.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 {
|
match l_entry {
|
||||||
DayEntry::End(i) => {
|
DayEntry::End(i) => {
|
||||||
self.stop_span(*i);
|
self.stop_span(*i);
|
||||||
let entry = &entries[*i];
|
self.line_entry(entries, *i, Times::Untimed, None);
|
||||||
let kind = Self::entry_kind(entry);
|
|
||||||
let text = Self::entry_title(files, entry);
|
|
||||||
self.line_entry(Some(*i), Times::Untimed, kind, text, None);
|
|
||||||
}
|
}
|
||||||
DayEntry::Now(t) => self.line(LineEntry::Now {
|
DayEntry::Now(t) => self.line(LineEntry::Now {
|
||||||
spans: self.spans_for_line(),
|
spans: self.spans_for_line(),
|
||||||
|
|
@ -169,75 +165,48 @@ impl LineLayout {
|
||||||
}),
|
}),
|
||||||
DayEntry::TimedEnd(i, t) => {
|
DayEntry::TimedEnd(i, t) => {
|
||||||
self.stop_span(*i);
|
self.stop_span(*i);
|
||||||
let entry = &entries[*i];
|
self.line_entry(entries, *i, Times::At(*t), None);
|
||||||
let kind = Self::entry_kind(entry);
|
|
||||||
let text = Self::entry_title(files, entry);
|
|
||||||
self.line_entry(Some(*i), Times::At(*t), kind, text, None);
|
|
||||||
}
|
}
|
||||||
DayEntry::TimedAt(i, t, t2) => {
|
DayEntry::TimedAt(i, t, t2) => {
|
||||||
let time = t2
|
let time = t2
|
||||||
.map(|t2| Times::FromTo(*t, t2))
|
.map(|t2| Times::FromTo(*t, t2))
|
||||||
.unwrap_or_else(|| Times::At(*t));
|
.unwrap_or_else(|| Times::At(*t));
|
||||||
let entry = &entries[*i];
|
self.line_entry(entries, *i, time, None);
|
||||||
let kind = Self::entry_kind(entry);
|
|
||||||
let text = Self::entry_title(files, entry);
|
|
||||||
self.line_entry(Some(*i), time, kind, text, None);
|
|
||||||
}
|
}
|
||||||
DayEntry::TimedStart(i, t) => {
|
DayEntry::TimedStart(i, t) => {
|
||||||
self.start_span(*i);
|
self.start_span(*i);
|
||||||
let entry = &entries[*i];
|
self.line_entry(entries, *i, Times::At(*t), None);
|
||||||
let kind = Self::entry_kind(entry);
|
|
||||||
let text = Self::entry_title(files, entry);
|
|
||||||
self.line_entry(Some(*i), Times::At(*t), kind, text, None);
|
|
||||||
}
|
}
|
||||||
DayEntry::ReminderSince(i, d) => {
|
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 {
|
let extra = if *d == 1 {
|
||||||
"yesterday".to_string()
|
"yesterday".to_string()
|
||||||
} else {
|
} else {
|
||||||
format!("{} days ago", d)
|
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) => {
|
DayEntry::At(i) => {
|
||||||
let entry = &entries[*i];
|
self.line_entry(entries, *i, Times::Untimed, None);
|
||||||
let kind = Self::entry_kind(entry);
|
|
||||||
let text = Self::entry_title(files, entry);
|
|
||||||
self.line_entry(Some(*i), Times::Untimed, kind, text, None);
|
|
||||||
}
|
}
|
||||||
DayEntry::ReminderWhile(i, d) => {
|
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 plural = if *d == 1 { "" } else { "s" };
|
||||||
let extra = format!("{} day{} left", d, plural);
|
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) => {
|
DayEntry::Undated(i) => {
|
||||||
let entry = &entries[*i];
|
self.line_entry(entries, *i, Times::Untimed, None);
|
||||||
let kind = Self::entry_kind(entry);
|
|
||||||
let text = Self::entry_title(files, entry);
|
|
||||||
self.line_entry(Some(*i), Times::Untimed, kind, text, None);
|
|
||||||
}
|
}
|
||||||
DayEntry::Start(i) => {
|
DayEntry::Start(i) => {
|
||||||
self.start_span(*i);
|
self.start_span(*i);
|
||||||
let entry = &entries[*i];
|
self.line_entry(entries, *i, Times::Untimed, None);
|
||||||
let kind = Self::entry_kind(entry);
|
|
||||||
let text = Self::entry_title(files, entry);
|
|
||||||
self.line_entry(Some(*i), Times::Untimed, kind, text, None);
|
|
||||||
}
|
}
|
||||||
DayEntry::ReminderUntil(i, d) => {
|
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 {
|
let extra = if *d == 1 {
|
||||||
"tomorrow".to_string()
|
"tomorrow".to_string()
|
||||||
} else {
|
} else {
|
||||||
format!("in {} days", d)
|
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 {
|
fn entry_title(entry: &Entry) -> String {
|
||||||
let command = files.command(entry.source).command;
|
|
||||||
match entry.kind {
|
match entry.kind {
|
||||||
EntryKind::Birthday(Some(age)) => format!("{} ({})", entry.title, age),
|
EntryKind::Birthday(Some(age)) => format!("{} ({})", entry.title, age),
|
||||||
_ => entry.title.clone(),
|
_ => entry.title.clone(),
|
||||||
|
|
@ -305,32 +273,24 @@ impl LineLayout {
|
||||||
self.step_spans();
|
self.step_spans();
|
||||||
}
|
}
|
||||||
|
|
||||||
fn line_entry(
|
fn line_entry(&mut self, entries: &[Entry], index: usize, time: Times, extra: Option<String>) {
|
||||||
&mut self,
|
let entry = &entries[index];
|
||||||
index: Option<usize>,
|
|
||||||
time: Times,
|
let number = match self.numbers.get(&index) {
|
||||||
kind: LineKind,
|
|
||||||
text: String,
|
|
||||||
extra: Option<String>,
|
|
||||||
) {
|
|
||||||
let number = match index {
|
|
||||||
Some(index) => Some(match self.numbers.get(&index) {
|
|
||||||
Some(number) => *number,
|
Some(number) => *number,
|
||||||
None => {
|
None => {
|
||||||
self.last_number += 1;
|
self.last_number += 1;
|
||||||
self.numbers.insert(index, self.last_number);
|
self.numbers.insert(index, self.last_number);
|
||||||
self.last_number
|
self.last_number
|
||||||
}
|
}
|
||||||
}),
|
|
||||||
None => None,
|
|
||||||
};
|
};
|
||||||
|
|
||||||
self.line(LineEntry::Entry {
|
self.line(LineEntry::Entry {
|
||||||
number,
|
number: Some(number),
|
||||||
spans: self.spans_for_line(),
|
spans: self.spans_for_line(),
|
||||||
time,
|
time,
|
||||||
kind,
|
kind: Self::entry_kind(entry),
|
||||||
text,
|
text: Self::entry_title(entry),
|
||||||
extra,
|
extra,
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue