diff options
Diffstat (limited to 'apps/cassiopeia/src/lib.rs')
-rw-r--r-- | apps/cassiopeia/src/lib.rs | 19 |
1 files changed, 13 insertions, 6 deletions
diff --git a/apps/cassiopeia/src/lib.rs b/apps/cassiopeia/src/lib.rs index e391c695237e..895110fe218d 100644 --- a/apps/cassiopeia/src/lib.rs +++ b/apps/cassiopeia/src/lib.rs @@ -10,9 +10,11 @@ mod data; mod date; +mod error; mod format; pub mod meta; mod time; +mod timeline; pub use date::Date; pub use time::Time; @@ -46,17 +48,17 @@ impl Cassiopeia { /// Start a new work session (with optional 15 minute rounding) pub fn start(&mut self, round: bool) -> Option<()> { - let s = self.tf.start(round)?; + let delta = self.tf.timeline.start(Time::rounded(round)).ok()?; clean_ir(&mut self.ir); - append_ir(&mut self.ir, s.make_ir()); + append_ir(&mut self.ir, delta.make_ir()); format::write_file(self.path.as_str(), &mut self.ir) } /// Stop the existing work session (with optional 15 minute rounding) pub fn stop(&mut self, round: bool) -> Option<()> { - let s = self.tf.stop(round)?; + let delta = self.tf.timeline.stop(Time::rounded(round)).ok()?; clean_ir(&mut self.ir); - append_ir(&mut self.ir, s.make_ir()); + append_ir(&mut self.ir, delta.make_ir()); format::write_file(self.path.as_str(), &mut self.ir) } @@ -70,6 +72,11 @@ impl Cassiopeia { clean_ir(&mut self.ir); format::write_file(self.path.as_str(), &mut self.ir) } + + /// Collect statistics on previous work sessions + pub fn stat(&self) -> Option<String> { + None + } } /// An invoice generator builder @@ -142,9 +149,9 @@ impl<'cass> Invoicer<'cass> { return None; } - let inv = self.tf.tf.invoice()?; + let delta = self.tf.tf.timeline.invoice(Date::today()).ok()?; clean_ir(&mut self.tf.ir); - append_ir(&mut self.tf.ir, inv.make_ir()); + append_ir(&mut self.tf.ir, delta.make_ir()); format::write_file(self.tf.path.as_str(), &mut self.tf.ir) } } |