PESEL
is a simple Rust library to validate PESEL numbers.
What is PESEL number?
PESEL is national identification number used in Poland. Every citizen of Republic of Poland is assigned PESEL when being born (and since 2015 this should also apply to foreigners living in Poland for more than 2 months).
There are some interesting facts about the PESEL number - find more on Wikipedia
Usage & Examples
This library offers two main features:
a) creating PESEL from String (and performing some checks to make sure PESEL is valid)
use FromStr;
let pesel_number = "44051401458";
let result = PESEL from_str;
match result
// alternatively, pass a string literal:
let result = PESEL from_str;
match result
b) generating PESEL number, based on date of birth of a person and their biological gender
let result = PESEL new;
match result
Note: behavior of this method changed. It used to return PESEL, now returns Result<PESEL, PeselParsingError>
. Errors are usually due to:
- provided date of birth being out of range for PESEL (earlier than 1800, later than 2299)
- provided date of birth is not valid i.e.: 30th of February, 31st of April...
Please note that after PESEL number structure is constructed there is no way to change it - it stays immutable forever.
TODO
- validate date before PESEL is created to avoid creation of PESEL for invalid date (31st of February, 31st of April, 31st of June...)
- validate PESEL numbers in bulk (ideally: reading from file)