summaryrefslogtreecommitdiffstats
path: root/cli/src/main.rs
diff options
context:
space:
mode:
Diffstat (limited to 'cli/src/main.rs')
-rw-r--r--cli/src/main.rs17
1 files changed, 14 insertions, 3 deletions
diff --git a/cli/src/main.rs b/cli/src/main.rs
index 5fd52c7..071e251 100644
--- a/cli/src/main.rs
+++ b/cli/src/main.rs
@@ -4,9 +4,14 @@ use std::path::PathBuf;
use std::str::FromStr;
use structopt::StructOpt;
+mod search;
mod store;
mod transaction;
+use search::{Constraint, Search};
+use store::Store;
+use transaction::{Transaction, TransactionKind};
+
//TODO relative ("yesterday", "-2d", etc)
fn parse_date(s: &str) -> Result<NaiveDate, String> {
NaiveDate::parse_from_str(s, "%Y-%m-%d").map_err(|e| e.to_string())
@@ -16,7 +21,7 @@ fn parse_date(s: &str) -> Result<NaiveDate, String> {
#[derive(StructOpt)]
enum Command {
Insert {
- kind: transaction::TransactionKind,
+ kind: TransactionKind,
#[structopt(long)]
account: String,
@@ -62,7 +67,13 @@ struct Mn {
}
fn main() {
- let mut store = store::Store::open(PathBuf::from("store")).unwrap();
+ let mut store = Store::open(PathBuf::from("store")).unwrap();
+
+ let search = Search::new(store.transactions().iter().collect());
+ println!("{:?}", search.get());
+ let search = search.subtract(Constraint::Category("a".to_string()));
+ println!("{:?}", search.get());
+
let args = Mn::from_args();
eprintln!("{:?}", args);
match args.command {
@@ -74,7 +85,7 @@ fn main() {
description,
date,
} => {
- let transaction = transaction::Transaction {
+ let transaction = Transaction {
kind,
to: account,
from: "Default".to_string(),