20 个版本 (12 个稳定版)
2.2.1 | 2024 年 8 月 3 日 |
---|---|
2.0.4 | 2024 年 4 月 25 日 |
2.0.3 | 2024 年 2 月 26 日 |
1.0.2 | 2024 年 1 月 5 日 |
0.2.1 | 2023 年 12 月 8 日 |
#267 in Rust 模式
每月 392 次下载
37KB
983 行
null-kane
这是一个用于货币操作的 Rust crate。它通过一个特质提供了一个接口,用于实现本地化方法。该特质允许检索货币分隔符、千位分隔符和货币符号。
特性
本地化方法
get_separator
:检索货币使用的分隔符。get_thousand_separator
:检索货币使用的千位分隔符。get_currency_symbol
:检索货币符号。
算术操作
该 crate 实现了对以下类型的算术操作
- 货币之间的加法、乘法和除法。
- 货币与
usize
之间的加法、乘法和除法。 - 货币与
f32
之间的加法、乘法和除法。 - 货币与
f64
之间的加法、乘法和除法。
构造函数
From
实现从 f32
和 f64
创建实例。
示例
use null_kane::{Currency, CurrencyLocale};
#[derive(Clone, Default, PartialEq, Eq)]
enum MyLocalization {
#[default]
Euro
}
impl CurrencyLocale for MyLocalization {
fn separator(&self) -> char {
// Implementation of the separator for Euro
','
}
fn thousand_separator(&self) -> char {
// Implementation of the thousand separator for Euro
'.'
}
fn currency_symbol(&self) -> &'static str {
// Implementation of the currency symbol for Euro
"€"
}
}
fn main() {
let euro_currency = MyLocalization::default();
let amount_one = Currency::from(50.25_f32).with_locale(euro_currency.clone());
let amount_two = Currency::from(30.75_f64).with_locale(euro_currency);
let sum = amount_one + amount_two;
let product = amount_one * 2.0;
let division = amount_two / 3.0;
println!("Sum: {}", sum);
println!("Product: {}", product);
println!("Division: {}", division);
}
TODO
- 实现一个良好的失败操作解决方案,例如如果货币本地化不匹配
- 考虑使用 num 特质
许可证
该项目受 MIT 许可证的许可。有关详细信息,请参阅 LICENSE 文件。
依赖关系
~175KB