Validate and correct GTIN codes, such as UPC-A and EAN-13, in Rust.
Currently supported types:
- GTIN-8
- GTIN-12 (UPC-A)
- GTIN-13 (EAN-13)
- GTIN-14
Validation features include:
- Check that the string contains the correct number of digits
- Compute the check-digit and confirm that it matches
Correction features include:
- Add zero-padding (some software treats these codes as integers)
- Strip whitespace from both sides of the code
For full details, check the documentation.
Briefly, here are the function declarations:
// return true if the code is valid, false otherwise
fn gtin8::check(code: &str) -> bool;
fn gtin12::check(code: &str) -> bool;
fn gtin13::check(code: &str) -> bool;
fn gtin14::check(code: &str) -> bool;
// return a corrected String or Err
fn gtin8::fix(code: &str) -> Result<String, FixError>;
fn gtin12::fix(code: &str) -> Result<String, FixError>;
fn gtin13::fix(code: &str) -> Result<String, FixError>;
fn gtin14::fix(code: &str) -> Result<String, FixError>;
For example, you can validate UPC-A codes:
use gtin_validate::gtin12;
assert_eq!(gtin12::check("000000000000"), true);
assert_eq!(gtin12::check("000000000001"), false);
You can add this line to your Cargo.toml file:
[dependencies]
gtin-validate = "1.3.0"
Found a bug? Report an issue through GitHub.
Want to hack on the code? Submit a pull request.