# IL_TZ
[](https://github.com/ofersadan85/il_tz/actions/workflows/rust.yml)
[](https://github.com/ofersadan85/il_tz/actions/workflows/publish.yml)
[](https://crates.io/crates/il_tz)
[](https://docs.rs/il_tz)
[](LICENSE.md)
A Rust library for working with Israeli ID numbers (TZ is the [Hebrew](https://en.wikipedia.org/wiki/Israeli_identity_card) acronym for "ID").
## Install (CLI)
Download the binary for your system from the [latest release](https://github.com/ofersadan85/il_tz/releases/latest)
You can also install it using `cargo install`:
```bash
cargo install il_tz --features cli
```
## Usage (CLI)
```text
> iltz --help
Validate Israeli ID numbers (TZ)
Usage: iltz.exe [TZ]... [COMMAND]
Commands:
generate Generates a list of valid TZ values
help Print this message or the help of the given subcommand(s)
Arguments:
[TZ]... A list of ID numbers (TZ) to validate
Options:
-h, --help Print help
```
### CLI Examples
```text
> iltz 999999998 999999999
999999998 true
999999999 false
> iltz generate 50 100
000000059
000000067
000000075
000000083
000000091
000000109
```
## As a dependency
To use it in your own Rust projects, run this command:
```bash
cargo add il_tz
```
Alternatively, add this to your Cargo.toml:
```toml
[dependencies]
il_tz = "0.1.3"
```
> **Warning**
> Verify the latest version number on [crates.io](https://crates.io/crates/il_tz).
## Rust Example
This example shows how to convert an integer to a `TZ`, how to convert a string to a `TZ`, and validating them.
```rust
use il_tz::{int2tz, str2tz, tz2str, validate};
fn main() {
// A valid TZ example
let valid = int2tz(999_999_998).unwrap();
println!("{} {}", tz2str(&valid), validate(&valid));
// An invalid TZ example
let invalid = int2tz(999_999_999).unwrap();
println!("{} {}", tz2str(&invalid), validate(&invalid));
// Leading zeros can be used or omitted
let tz1 = str2tz("000000141").unwrap();
let tz2 = str2tz("00141").unwrap();
let tz3 = int2tz(141).unwrap();
assert_eq!(tz1, tz2);
assert_eq!(tz1, tz3);
}
```
> **Note**
> This library does not validate the ID number (TZ) against any sort of population database, it only validates it mathematically.
## License / Warranty
This library is licensed under the MIT license (which means it's free to use, reuse, repackage etc.) See the LICENSE file for more information. This library is provided as-is, without any warranty. Use at your own risk.