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 每月下载量
26KB
441 行
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