summaryrefslogtreecommitdiffstats
path: root/cli/src/transaction.rs
diff options
context:
space:
mode:
Diffstat (limited to 'cli/src/transaction.rs')
-rw-r--r--cli/src/transaction.rs12
1 files changed, 12 insertions, 0 deletions
diff --git a/cli/src/transaction.rs b/cli/src/transaction.rs
index 117edfb..8e33aa4 100644
--- a/cli/src/transaction.rs
+++ b/cli/src/transaction.rs
@@ -2,10 +2,12 @@ use chrono::naive::NaiveDate;
use rust_decimal::Decimal;
use serde::{Deserialize, Serialize};
use std::convert::AsRef;
+use std::fmt;
use std::fs;
use std::hash::{Hash, Hasher};
use std::path::Path;
use structopt::StructOpt;
+use tabled::Tabled;
use twox_hash::XxHash64;
pub(crate) type Account = String;
@@ -33,9 +35,19 @@ impl std::str::FromStr for TransactionKind {
}
}
+impl fmt::Display for TransactionKind {
+ fn fmt(&self, f: &mut fmt::Formatter<'_>) -> fmt::Result {
+ match self {
+ TransactionKind::Expense => write!(f, "expense"),
+ TransactionKind::Income => write!(f, "income"),
+ }
+ }
+}
+
#[derive(Debug)]
#[derive(Hash)]
#[derive(Deserialize, Serialize)]
+#[derive(Tabled)]
pub struct Transaction {
pub description: String,
pub date: NaiveDate,