#iso-4217 #currency #codes #currencies #specification #numeric #standard

codes-iso-4217

本软件包包含ISO 4217货币代码规范的实现

8个版本

0.1.7 2022年12月25日
0.1.6 2022年12月23日
0.1.1 2022年11月30日

#88 in 金融

Download history 1154/week @ 2024-03-14 1689/week @ 2024-03-21 1768/week @ 2024-03-28 1500/week @ 2024-04-04 1983/week @ 2024-04-11 1074/week @ 2024-04-18 566/week @ 2024-04-25 593/week @ 2024-05-02 1366/week @ 2024-05-09 1241/week @ 2024-05-16 898/week @ 2024-05-23 904/week @ 2024-05-30 951/week @ 2024-06-06 778/week @ 2024-06-13 709/week @ 2024-06-20 859/week @ 2024-06-27

3,410 每月下载量
orb-billing 中使用

MIT 许可证

97KB
1K SLoC

软件包 codes-iso-4217

本软件包包含ISO 4217货币代码规范的实现。

crates.io docs.rs

本标准建立了国际上公认的货币表示代码,以实现清晰并减少错误。货币既可以用数字表示,也可以用字母表示,使用三位数字或三位字母。一些主要货币的字母代码是熟悉的,例如“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_codeCurrencyCode::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_historicalCurrencyCode::withdrawal_date方法。
  • symbols - 添加了 CurrencyCode::currency_symbol_strCurrencyCode::currency_symbol_code_points 方法。

更改

版本 0.1.7

  • 为 codes-common 中的新 build 模块提供支持

版本 0.1.6

  • 实现了 StandardizedFixedLengthCode 特性。

版本 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

  • 初始占位符发布。

待办事项

  1. 创建一个计划内的构建,从 ISO 网站检索更新文件。

依赖项

~0.4–3MB
~51K SLoC