8个版本
0.1.7 | 2022年12月25日 |
---|---|
0.1.6 | 2022年12月23日 |
0.1.1 | 2022年11月30日 |
#88 in 金融
3,410 每月下载量
在 orb-billing 中使用
97KB
1K SLoC
软件包 codes-iso-4217
本软件包包含ISO 4217货币代码规范的实现。
本标准建立了国际上公认的货币表示代码,以实现清晰并减少错误。货币既可以用数字表示,也可以用字母表示,使用三位数字或三位字母。一些主要货币的字母代码是熟悉的,例如“EUR”代表欧元。幸运的是,ISO 4217涵盖了从阿富汗尼到赞比亚克瓦查的所有货币。
此软件包通过为所有符号添加货币符号字符串(以及符号的Unicode代码点)来扩展ISO规范的数据库模型。
有关API设计的说明,请参阅仓库README。
示例
use codes_iso_4217::{CurrencyCode, ISO_4217};
let code = CurrencyCode::BZD;
assert_eq!(code.alpha_code(), "BZD");
assert_eq!(code.numeric_code(), Some(84));
// feature = "currency_name"
assert_eq!(code.currency_name(), "Belize Dollar");
// feature = "country_name"
assert_eq!(code.country_name(), "BELIZE");
// feature = "monetary_units"
assert_eq!(code.monetary_units(), 2);
// feature = "is_fund"
assert_eq!(code.is_fund(), false);
// feature = "historical_codes"
assert_eq!(code.is_historical(), false);
assert_eq!(code.withdrawal_date(), None);
// feature = "symbols"
assert_eq!(code.currency_symbol_str(), Some("BZ$"));
assert_eq!(code.currency_symbol_code_points(), Some(&[0x42, 0x5a, 0x24]));
assert_eq!(ISO_4217.title(), "Currency codes");
特性
默认情况下,只启用了serde
特性,无法排除CurrencyCode::alpha_code
和CurrencyCode::numeric_code
方法。
serde
- 启用对CurrencyCode
类型的序列化。currency_name
- 添加CurrencyCode::currency_name
方法。country_name
- 添加CurrencyCode::country_name
方法。monetary_units
- 添加CurrencyCode::monetary_units
方法。is_fund
- 添加CurrencyCode::is_fund
方法。historical_codes
- 添加CurrencyCode::is_historical
和CurrencyCode::withdrawal_date
方法。symbols
- 添加了CurrencyCode::currency_symbol_str
和CurrencyCode::currency_symbol_code_points
方法。
更改
版本 0.1.7
- 为 codes-common 中的新
build
模块提供支持
版本 0.1.6
- 实现了
Standardized
和FixedLengthCode
特性。
版本 0.1.5
- 添加了从 xe.com 抓取的符号
- 同步了示例,注释掉了特性门控方法。
版本 0.1.4
- 添加了
ALL_CODES
常量。
版本 0.1.3
- 基于更新的
codes-common
进行了实现清理 - 使用新的
Code
特性和宏创建的实现。
版本 0.1.2
- 添加了更多文档。
- 删除了
Code
特性的实现。 - 将错误类型从结构体改为枚举。
版本 0.1.1
- 完成了构建时工作,以生成
CurrencyCode
类型和方法。受到了 penny 的很大启发,但希望得到不同的结果风格。
版本 0.1.0
- 初始占位符发布。
待办事项
- 创建一个计划内的构建,从 ISO 网站检索更新文件。
依赖项
~0.4–3MB
~51K SLoC