8 releases
0.1.7 | Jul 4, 2023 |
---|---|
0.1.6 | Apr 24, 2023 |
0.0.1 |
|
#247 in Algorithms
14,109 downloads per month
43KB
765 lines
IBAN
This is a crate for working with International Bank Account Numbers (IBANs).
An IBAN is an international standard for identifying bank accounts. It consists of a country code, two check digits, and a Basic Bank Account Number (BBAN) that includes a bank identifier, a branch identifier, and a checksum (if applicable).
This crate provides a simple implementation of IBANs. You can construct an IBAN using a
string, and then query it for its country code, and
check digits. You can also obtain spaced or electronic formatting using the Display
, Debug
,
Deref
, or AsRef
implementations.
This crate also provides a Bban
struct that represents the BBAN portion of an IBAN.
You can construct a BBAN using the Iban::bban
function, and then query it for it's
bank identifier, branch identifier, or checksum.
Usage
Add library as a dependency to Cargo.toml.
...
[dependencies]
iban = "0.1"
...
Construct a Iban
type by using str::parse
, FromStr::from_str
, or Iban::parse
.
use iban::{Bban, Iban};
let iban: Iban = "AA110011123Z5678"
.parse()
.unwrap_or_else(|err| {
// This example panics, but you should handle the error cases properly.
panic!("invalid iban: {err}");
});
let country_code: &str = iban.country_code();
let bban: Bban = iban.bban();
let bank_identifier: Option<&str> = bban.bank_identifier();
References
- ISO 13616: https://www.iso13616.org/
- IBAN Registry (pdf): https://www.swift.com/node/9606
- IBAN Registry (txt): https://www.swift.com/node/11971
- php-iban: https://github.com/globalcitizen/php-iban
Dependencies
~0.4–1MB
~17K SLoC