app

Local-first trade for farms and co-ops
git clone https://radroots.dev/git/app.git
Log | Files | Refs | README | LICENSE

commit a1f7a93bcc530e06227849d819f7311695575e99
parent 34d4b012ac86400e10c425a404c1405b8eeb9876
Author: triesap <triesap@radroots.dev>
Date:   Mon, 19 Jan 2026 06:53:47 +0000

app-utils: add num_str helper

- add num_str formatting helper
- export num_str from numbers module
- add unit test for numeric formatting
- keep numeric formatting behavior consistent

Diffstat:
Mcrates/utils/src/lib.rs | 2+-
Mcrates/utils/src/numbers/mod.rs | 11++++++++++-
2 files changed, 11 insertions(+), 2 deletions(-)

diff --git a/crates/utils/src/lib.rs b/crates/utils/src/lib.rs @@ -8,7 +8,7 @@ pub mod time; pub mod types; pub use errors::{err_msg, handle_err, throw_err, ERR_PREFIX_APP, ERR_PREFIX_UTILS}; -pub use numbers::{parse_float, parse_int}; +pub use numbers::{num_str, parse_float, parse_int}; pub use text::{str_cap, str_cap_words, text_dec, text_enc, ROOT_SYMBOL}; pub use time::{time_now_ms, time_now_s}; pub use types::{resolve_err, resolve_ok, ResolveError, ResultPass}; diff --git a/crates/utils/src/numbers/mod.rs b/crates/utils/src/numbers/mod.rs @@ -8,9 +8,13 @@ pub fn parse_float(value: &str, fallback: f64) -> f64 { value.trim().parse::<f64>().unwrap_or(fallback) } +pub fn num_str<T: ToString>(value: T) -> String { + value.to_string() +} + #[cfg(test)] mod tests { - use super::{parse_float, parse_int}; + use super::{num_str, parse_float, parse_int}; #[test] fn parse_int_returns_fallback_on_invalid() { @@ -31,4 +35,9 @@ mod tests { fn parse_float_parses_numbers() { assert_eq!(parse_float("3.5", 0.0), 3.5); } + + #[test] + fn num_str_formats_numbers() { + assert_eq!(num_str(42), "42"); + } }