4 个版本

0.1.3 2020年3月29日
0.1.2 2020年3月27日
0.1.1 2019年7月25日
0.1.0 2019年7月24日

#1835 in 解析实现

26 每月下载量

MIT 许可证

26KB
441

Travis Build Status AppVeyor Build status

PESEL 是一个简单的 Rust 库,用于验证 PESEL 号码。

什么是 PESEL 号码?

PESEL 是在波兰使用的国家识别号码。波兰共和国的每个公民出生时都会被分配 PESEL(自 2015 年起,这也应适用于在波兰居住超过 2 个月的外国人)。

关于 PESEL 号码有一些有趣的事实 - 更多内容请查看维基百科

用法与示例

此库提供两个主要功能

a) 从字符串创建 PESEL(并执行一些检查以确保 PESEL 有效)

use std::str::FromStr;

let pesel_number = "44051401458";
let result = PESEL::from_str(pesel_number);
match result {
    Ok(pesel) => println!("PESEL: {}", pesel),
    _ => println!("invalid PESEL provided"),
}

// alternatively, pass a string literal:

let result = PESEL::from_str("44051401458");
match result {
    OK(pesel) => println!("PESEL: {}", pesel),
    _ => println!("invalid PESEL string"),
}

b) 根据个人的出生日期和生物学性别生成 PESEL 号码


let result = PESEL::new(1980, 05, 26, PeselGender::Male);
match result {
    Ok(pesel) => println!("generated PESEL: {}", pesel),
    _ => println!("unable to create PESEL for specified date"),
}

注意:此方法的行为已更改。它曾经返回 PESEL,现在返回 Result<PESEL, PeselParsingError>。错误通常是由于

  • 提供的出生日期超出 PESEL 的范围(早于 1800 年,晚于 2299 年)
  • 提供的出生日期无效,例如:2 月 30 日,4 月 31 日...

请注意,在构建 PESEL 号码的结构后,无法更改它 - 它将永远保持不变。

待办事项

  • 在创建 PESEL 之前验证日期,以避免为无效日期创建 PESEL(2 月 31 日,4 月 31 日,6 月 31 日...)
  • 批量验证 PESEL 号码(理想情况下:从文件中读取)

依赖项

~1.5MB
~28K SLoC