rifven

Crates.iorifven
lib.rsrifven
version0.1.0
sourcesrc
created_at2021-02-23 02:53:01.695723
updated_at2021-02-23 02:53:01.695723
descriptionVenezuelan RIF implementation useful for creating and validating RIF numbers
homepage
repositoryhttps://github.com/EstebanBorai/rifven
max_upload_size
id359271
size124,426
Esteban Borai (EstebanBorai)

documentation

README

rifven

Venezuelan RIF implementation useful for creating and validating RIF numbers

Crates.io Documentation Build Lint Tests

What are RIF numbers?

RIF (Registro de Informacion Fiscal) in english Fiscal Information Registry is a number provided by a Venezuelan entity SAIME used to identify multiple entities for taxable purposes.

The RIF is composed by a kind which could be:

  • C: Township or Communal Council
  • E: Represents a foreigner natural person and stands for "Extranjera" and "Extranjero"
  • G: Represents a goverment entity and stands for "Gubernamental"
  • J: Used for a legal entity. Could be a natural person or a corporate entity and stands for "Jurídico"
  • P: Used on RIF numbers which belongs to passports
  • V: Represents a person with venezuelan citizenship and stands for "Venezolana" and "Venezolano"

An identifier number followed by a hyphen symbol and finally a checksum digit, as well followed by a hyphen symbol.

Motivation

Implement a crate to help create instances of valid RIF numbers

Usage

Creating a new Rif instance providing each of its parts values such as Kind (J; V; P; G; C), identifier (tax payer ID), check number.

The following code, creates an instance of Rif for a RIF string which looks like J-07013380-5:

use rifven::{Kind, Rif};

let rif = Rif::new(Kind::Legal, 07013380, 5).unwrap();

assert_eq!(rif.kind(), Kind::Legal);
assert_eq!(rif.identifier(), 7013380);
assert_eq!(rif.checksum_digit(), 5);

You can also create instances of Rif from its string representation

use rifven::{Kind, Rif};
use std::str::FromStr;

let myrif = Rif::from_str("J-07013380-5").unwrap();

assert_eq!(Rif::new(Kind::Legal, 07013380, 5).unwrap(), myrif);

License

Licensed under the Apache 2.0 and MIT licenses

Contributions

Every contribution to this project is welcome, feel free to either open a Pull Request or issue

Commit count: 1

cargo fmt