14 个版本 (8 个稳定版)
4.0.1 | 2021 年 12 月 29 日 |
---|---|
4.0.0 | 2020 年 1 月 24 日 |
3.0.0 | 2019 年 11 月 10 日 |
2.0.0 | 2018 年 12 月 21 日 |
0.4.0 | 2017 年 5 月 12 日 |
#197 在 解析器实现
每月 66,713 次下载
用于 8 个 crate(7 个直接使用)
44KB
649 行
iban_validate
此 crate 提供了一种简单的方法来验证 IBAN(国际银行账户号码)。为此,您可以使用函数 parse()
。这将检查 IBAN 规则以及 BBAN 结构。提供的 Iban
结构提供了许多方法来简化 IBAN 的处理。其中许多方法通过 IbanLike
trait 提供。
当 BBAN 解析失败时,错误类型 ParseIbanError
提供有关出错原因的有用信息。此外,错误还包含 BaseIban
,您仍然可以使用它来访问有用的信息。
示例
以下示例对 IBAN 和 BBAN 格式进行了完整的验证。
use iban::*;
fn main() -> Result<(), ParseIbanError> {
let account = "DE44500105175407324931".parse::<Iban>()?;
assert_eq!(account.country_code(), "DE");
assert_eq!(account.check_digits(), 44);
assert_eq!(account.bban(), "500105175407324931");
assert_eq!(account.electronic_str(), "DE44500105175407324931");
assert_eq!(account.to_string(), "DE44 5001 0517 5407 3249 31");
assert_eq!(account.bank_identifier(), Some("50010517"));
assert_eq!(account.branch_identifier(), None);
Ok(())
}
此库提供了什么?
- 一个可以快速解析账户号码的
Iban
类型。它根本不需要分配,而是底层使用arrayvec
。 - 一个灵活的 API,即使国家不在 Swift 注册表中也非常有用(使用
BaseIban
。而不是使用 panic,此 crate 提供了带有出错原因的带类型错误。 - 所有功能都可以在
no_std
环境中使用(除了std
trait 的实现)。 - 可选的序列化和反序列化通过
serde
。 - 通过 Swift 提供的测试用例、自定义测试用例以及 proptest 进行 CI 测试的结果。
#![forbid(unsafe_code)]
,确保所有代码都使用安全的Rust编写。
使用方法
该crate可以在crates.io上找到。要使用此crate,只需将其作为依赖项添加
[dependencies]
iban_validate = "4"
功能
以下功能可用于配置crate
贡献
如果您在此crate中遇到问题或想帮忙,请查看这里。
稳定性
此crate可以在Rust编译器的最新稳定版本上使用,否则不提供稳定性保证。
许可
许可方式为以下之一
- Apache License,版本2.0 (LICENSE-APACHE或http://apache.ac.cn/licenses/LICENSE-2.0)
- MIT许可 (LICENSE-MIT或http://opensource.org/licenses/MIT)
任选其一。
贡献
除非您明确声明,否则任何有意提交以包含在您的工作中的贡献,根据Apache-2.0许可证定义,应如上所述双重许可,不附加任何其他条款或条件。
依赖项
~235KB