#helper #utils #rif

rifven

委内瑞拉 RIF 实施方案,可用于创建和验证 RIF 号码

1 个不稳定版本

0.1.0 2021 年 2 月 23 日

#80#util

MIT/Apache

94KB
287

rifven

委内瑞拉 RIF 实施方案,可用于创建和验证 RIF 号码

Crates.io Documentation Build Lint Tests

RIF 号码是什么?

RIF(Registro de Informacion Fiscal,西班牙语为 Fiscal Information Registry)是委内瑞拉实体 SAIME 提供的一个号码,用于税务目的识别多个实体。

RIF 由一种类型组成,可能是

  • C:乡镇或社区议会
  • E:代表外国自然人,意为“Extranjera”和“Extranjero”
  • G:代表政府实体,意为“Gubernamental”
  • J:用于法律实体。可以是自然人或公司实体,意为“Jurídico”
  • P:用于护照上的 RIF 号码
  • V:代表具有委内瑞拉国籍的人,意为“Venezolana”和“Venezolano”

一个标识号码,后面跟着一个连字符符号,最后是一个校验数字,之后跟着一个连字符符号。

动机

实现一个crate,帮助创建有效的RIF号码实例

用法

创建一个新的 Rif 实例,提供其各个部分的值,如 Kind(J;V;P;G;C),标识符(纳税人ID),校验数字。

以下代码,创建了一个类似于 J-07013380-5 的 RIF 字符串的 Rif 实例

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);

您还可以从其字符串表示形式创建 Rif 实例

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);

许可

Apache 2.0 和 MIT 许可协议下许可

贡献

欢迎对这个项目的任何贡献,您可以自由地发起一个 Pull Request 或 issue

依赖关系

~305–770KB
~18K SLoC