8 releases

0.1.7 Jul 4, 2023
0.1.6 Apr 24, 2023
0.0.1 Apr 4, 2023

#247 in Algorithms

Download history 2357/week @ 2024-07-21 2384/week @ 2024-07-28 2194/week @ 2024-08-04 1960/week @ 2024-08-11 1918/week @ 2024-08-18 2611/week @ 2024-08-25 3887/week @ 2024-09-01 2761/week @ 2024-09-08 2435/week @ 2024-09-15 1757/week @ 2024-09-22 2173/week @ 2024-09-29 861/week @ 2024-10-06 3048/week @ 2024-10-13 3768/week @ 2024-10-20 3738/week @ 2024-10-27 3511/week @ 2024-11-03

14,109 downloads per month

MIT/Apache

43KB
765 lines

IBAN

Crates.io Docs Coverage Status Licensed

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

Dependencies

~0.4–1MB
~17K SLoC