#country-code #codes #area #standard #un #statistical #specification

codes-un-m49

本包包含联合国 M49 - 统计用标准国家或区域代码(M 系列第 49 号)规范的实现

3 个版本

0.1.2 2022 年 12 月 25 日
0.1.1 2022 年 12 月 23 日
0.1.0 2022 年 12 月 13 日

#290国际化(i18n)

MIT 许可证

225KB
1K SLoC

包 codes-un-m49

本包包含联合国 M49 规范的实现。

crates.io docs.rs

联合国 M49 或统计用标准国家或区域代码(M 系列第 49 号)是联合国为统计目的使用的区域代码标准,由联合国统计局开发和维护。每个区域代码是一个三位数,可以指代各种地理和政治区域,如大陆和国家。在系统中分配的代码通常在名称更改时不会更改(与 ISO 3166-1 alpha-2 或 ISO 3166-1 alpha-3 不同),而是在国家或区域的领土范围发生重大变化时更改,尽管存在例外。

有关 API 设计的说明,请参阅仓库中的 README

示例

use codes_un_m49 as M49;

let region = M49::UN_M69_REGION_258;

assert_eq!(region.code(), 258);
assert_eq!(region.name(), "French Polynesia");
assert_eq!(region.kind(), M49::RegionKind::Country);
assert_eq!(region.country_code(), Some("PF"));

// feature = "country_codes"
assert_eq!(parent.country_code(), Some(CountryCode::PF));

let parent = region.parent_code().unwrap();
assert_eq!(parent.code(), 61);
assert_eq!(parent.name(), "Polynesia");

let parent = parent.parent_code().unwrap();
assert_eq!(parent.code(), 9);
assert_eq!(parent.name(), "Oceania");

let parent = parent.parent_code().unwrap();
assert_eq!(parent.code(), 1);
assert_eq!(parent.name(), "World");

特性

默认情况下,仅启用 serde 特性。

  • serde - 启用 RegionClassificationCode 类型的序列化。
  • country_codes;如果启用,RegionClassificationCode::country_code 方法返回的值将是来自 codes-iso-3166 包的 CountryCode 实例,否则返回 'static str

变更

版本 0.1.2

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

版本 0.1.1

  • 实现了 StandardizedFixedLengthCode 特性。

版本 0.1.0

  • 初始版本

待办事项

TBD

依赖关系

~7–17MB
~217K SLoC