#country-code #country #iso-3166 #localization

管辖权

为世界各地的管辖权及其相关的静态信息提供了一个轻量级且API友好的抽象。提供的信息包括:* ISO 3166 国家代码 * 联合国 M49 地区分类

2 个版本

0.1.1 2020 年 4 月 27 日
0.1.0 2020 年 4 月 6 日

136国际化(i18n)

Download history 4649/week @ 2024-03-14 3996/week @ 2024-03-21 3820/week @ 2024-03-28 4005/week @ 2024-04-04 2980/week @ 2024-04-11 2783/week @ 2024-04-18 3065/week @ 2024-04-25 2243/week @ 2024-05-02 2785/week @ 2024-05-09 2992/week @ 2024-05-16 2574/week @ 2024-05-23 2257/week @ 2024-05-30 3460/week @ 2024-06-06 2955/week @ 2024-06-13 2099/week @ 2024-06-20 1448/week @ 2024-06-27

每月 10,557 次下载

MIT 许可证

34KB
603

管辖权

轻量级静态 Jurisdiction 信息。

该 crate 提供了用于处理世界各地管辖权的接口。管辖权的信息包括

  • ISO 3166 Alpha2 和 Alpha3 字符代码。
  • ISO 3166 数字国家代码。
  • 联合国 M49 地区分类。

管辖权对象是一个轻量级对象,指针大小,适合在整个生态系统中在 API 表面传输。API 边界上的序列化可以选择采用任何标准化的分类格式。

示例

use anyhow::{Result, anyhow, format_err};
use jurisdiction::{Jurisdiction, Alpha2, Alpha3};
use jurisdiction::region::{Region, SubRegion};
use std::str::FromStr;

fn supported_jurisdiction(alpha: &str) -> Result<Jurisdiction> {
    let jurisdiction = Jurisdiction::from_str(alpha)?;
    match jurisdiction.alpha2() {
        Alpha2::NO | Alpha2::SE | Alpha2::DK => Ok(jurisdiction),
        _ => Err(format_err!("only scandinavian countries are supported")),
    }
}

fn main() {
    let jurisdiction = supported_jurisdiction("NO").expect("unsupported");

    assert_eq!(jurisdiction, Alpha2::NO);
    assert_eq!(jurisdiction.alpha2(), Alpha2::NO);
    assert_eq!(jurisdiction.alpha2().to_string(), "NO");

    assert_eq!(jurisdiction, Alpha3::NOR);
    assert_eq!(jurisdiction.alpha3(), Alpha3::NOR);
    assert_eq!(jurisdiction.alpha3().to_string(), "NOR");

    assert_eq!(jurisdiction.country_code(), 578);

    assert_eq!(jurisdiction.region(), Region::Europe);
    assert_eq!(jurisdiction.sub_region(), SubRegion::NorthernEurope);
}

有关更全面的 API 文档和示例,请参阅 docs.rs

依赖项

~0.6–1.2MB
~27K SLoC