Crates.io | iban_validate |
lib.rs | iban_validate |
version | 4.0.1 |
source | src |
created_at | 2017-04-14 20:56:31.056021 |
updated_at | 2021-12-29 15:11:33.862127 |
description | A small crate to verify IBAN account numbers. |
homepage | |
repository | https://github.com/ThomasdenH/iban_check |
max_upload_size | |
id | 10607 |
size | 43,065 |
This crate provides an easy way to validate an IBAN (International Bank Account Number). To do so, you can use the function parse()
. This will check the IBAN rules as well as the BBAN structure. The provided Iban
structure provides many methods to easy the handling of an IBAN. Many of these methods are provided via the IbanLike
trait.
When BBAN parsing fails, the error type ParseIbanError
provides useful information about what went wrong. Additionally, the error contains BaseIban
, which can still be used to access useful information.
The following example does a full validation of the IBAN and BBAN format.
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
type that can be used to parse account numbers very quickly. It doesn't require allocations at all, and instead leverages arrayvec
under the hood.BaseIban
. Instead of using panic, the crate provides typed errors with what went wrong.no_std
environment (except for the implementation of std
traits).serde
.#![forbid(unsafe_code)]
, making sure all code is written in safe Rust.The crate can be found on crates.io. To use this crate, just add it as an dependency:
[dependencies]
iban_validate = "4"
The following features can be used to configure the crate:
Error
.serde
support for Iban
and BaseIban
.If you experience issues with this crate or want to help, please look here.
This crate is usable on the latest stable release of the Rust compiler and otherwise makes no stability guarantees.
Licensed under either of
at your option.
Unless you explicitly state otherwise, any contribution intentionally submitted for inclusion in the work by you, as defined in the Apache-2.0 license, shall be dual licensed as above, without any additional terms or conditions.