///|
pub fn IbanError::format(self : IbanError) -> String {
"\{self.code()}: \{self.message()}"
}
///|
pub fn explain(input : String) -> String {
let compact = compact_text(input)
match parse(input) {
Ok(iban) => {
let bank = match iban.bank() {
Some(v) => v
None => "-"
}
let branch = match iban.branch() {
Some(v) => v
None => "-"
}
let account = match iban.account() {
Some(v) => v
None => "-"
}
"valid compact=\{iban.compact} pretty=\{iban.pretty()} country=\{iban.country} check=\{iban.check_digits} bban=\{iban.bban} bank=\{bank} branch=\{branch} account=\{account}"
}
Err(err) => "invalid compact=\{compact} \{err.format()}"
}
}