diff options
Diffstat (limited to 'schist_core/schist_models/src')
| -rw-r--r-- | schist_core/schist_models/src/bucket.rs | 13 |
1 files changed, 13 insertions, 0 deletions
diff --git a/schist_core/schist_models/src/bucket.rs b/schist_core/schist_models/src/bucket.rs index a28aa8f..67ed31e 100644 --- a/schist_core/schist_models/src/bucket.rs +++ b/schist_core/schist_models/src/bucket.rs @@ -1,3 +1,5 @@ +use std::ops::Div; + use derive_builder::Builder; use diesel::prelude::*; use serde::{Deserialize, Serialize}; @@ -34,3 +36,14 @@ impl Bucket { .all(|t| t.bucket_id.is_none_or(|id| id != self.id)) } } + +impl Bucket { + pub fn pretty_balance_per_100(&self) -> String { + let abs_balance_per_100 = self.balance.unwrap_or(0).div(100).abs(); + if self.balance.is_none_or(|balance| balance >= 0) { + abs_balance_per_100.to_string() + } else { + format!("({abs_balance_per_100})") + } + } +} |
