Crates.io | codes-iso-4217 |
lib.rs | codes-iso-4217 |
version | 0.1.7 |
source | src |
created_at | 2022-11-29 19:49:48.686832 |
updated_at | 2022-12-25 02:52:04.414365 |
description | This package contains an implementation of the ISO 4217 Currency Codes specification. |
homepage | |
repository | https://github.com/johnstonskj/rust-codes |
max_upload_size | |
id | 725621 |
size | 344,977 |
This package contains an implementation of the ISO 4217 Currency Codes specification.
This standard establishes internationally recognized codes for the representation of currencies that enable clarity and reduce errors. Currencies are represented both numerically and alphabetically, using either three digits or three letters. Some of the alphabetic codes for major currencies are familiar, such as "EUR" for Euros. Fortunately, ISO 4217 covers everything from Afghanis to Zambian Kwacha as well.
This package extends the data model of the ISO specification by adding a currency symbol string (and Unicode code points for the symbol) where possible to all symbols.
For notes on the design of the API, see the repository README.
use codes_iso_4217::{CurrencyCode, ISO_4217};
let code = CurrencyCode::BZD;
assert_eq!(code.alpha_code(), "BZD");
assert_eq!(code.numeric_code(), Some(84));
// feature = "currency_name"
assert_eq!(code.currency_name(), "Belize Dollar");
// feature = "country_name"
assert_eq!(code.country_name(), "BELIZE");
// feature = "monetary_units"
assert_eq!(code.monetary_units(), 2);
// feature = "is_fund"
assert_eq!(code.is_fund(), false);
// feature = "historical_codes"
assert_eq!(code.is_historical(), false);
assert_eq!(code.withdrawal_date(), None);
// feature = "symbols"
assert_eq!(code.currency_symbol_str(), Some("BZ$"));
assert_eq!(code.currency_symbol_code_points(), Some(&[0x42, 0x5a, 0x24]));
assert_eq!(ISO_4217.title(), "Currency codes");
By default only the serde
feature is enabled, the CurrencyCode::alpha_code
and
CurrencyCode::numeric_code
methods cannot be excluded.
serde
- Enables serialization of the CurrencyCode
type.currency_name
- Adds the CurrencyCode::currency_name
method.country_name
- Adds the CurrencyCode::country_name
method.monetary_units
- Adds the CurrencyCode::monetary_units
method.is_fund
- Adds the CurrencyCode::is_fund
method.historical_codes
- Adds the CurrencyCode::is_historical
and CurrencyCode::withdrawal_date
methods.symbols
- Adds the CurrencyCode::currency_symbol_str
and CurrencyCode::currency_symbol_code_points
methods.Version 0.1.7
build
module in codes-commonVersion 0.1.6
Standardized
and FixedLengthCode
traits.Version 0.1.5
Version 0.1.4
ALL_CODES
constant.Version 0.1.3
codes-common
Code
trait and macro-created implementation.Version 0.1.2
Code
trait.Version 0.1.1
CurrencyCode
type and
methods. Took heavy inspiration from
penny but wanted a different resulting style.Version 0.1.0