Simple crate for validating and generating Finnish Personal Identity Code (HETU).
Works with rust 1.8 stable.
Add this to your Cargo.toml
toml
[dependencies.hetu]
git = "https://github.com/jelovirt/hetu.git"
To validate:
```rust extern crate hetu; use hetu::Ssn;
pub fn main() { if Ssn::parse("121212-121D").is_ok() { println!("Valid HETU") } else { println!("Invalid") } } ```
To generate:
```rust extern crate hetu; use hetu::Ssn;
pub fn main() { println!("{}", Ssn::generate()); } ```
To generate by pattern:
```rust extern crate hetu; use hetu::Ssn; use hetu::SsnPattern;
pub fn main() { let pattern = SsnPattern::parse("111111-111?").unwrap(); println!("{}", Ssn::generatebypattern(pattern).unwrap()); } ```
Command line tool hetu
can be used to either validate or randomly generate
identifiers.
To validate:
```bash $ hetu 121212-121D $ echo 121212-121D | hetu - $ hetu 121212-121C Error: Invalid checksum: expected D
121212-121C ^ ```
To generate:
bash
$ hetu
121212-121D
To generate by pattern that can contain wildcards:
bash
$ hetu -p 121212-121?
121212-121D
$ hetu -p 121212-???D
121212-028D
hetu -p ??????-???D
241151-028D