diff options
| author | Gustav Sörnäs <gustav@sornas.net> | 2021-07-29 15:42:12 +0200 |
|---|---|---|
| committer | Gustav Sörnäs <gustav@sornas.net> | 2021-07-29 16:25:47 +0200 |
| commit | 750ac56977cd08d850cf902c8c8070512ecf484f (patch) | |
| tree | a8a13634c0bc2dfe653ab52410c7c1a2f4c18dd1 /cli/src/transaction.rs | |
| parent | cf79a3180282f08a6165f4b88f52b78a14b9c688 (diff) | |
| download | money-750ac56977cd08d850cf902c8c8070512ecf484f.tar.gz | |
table output and show command
Diffstat (limited to 'cli/src/transaction.rs')
| -rw-r--r-- | cli/src/transaction.rs | 12 |
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, |
