Expand description
Static ISO 4217 Data
§Static ISO 4217 Currency Data
This crate provides a no-std and no-std::no-alloc capable enumeration of ISO 4217 Currency-code data, vis-a-vis the Currency Rust enum. It requires Rust 1.88.0 or later, and MSRV updates are not considered breaking changes.
§Features
default: Enables theserdefeature.serde: Enables serialization/deserialization usingserde.alloc: Enables the use of allocated types (this should be enabled ifserdeis enabled).zerocopy: Enables the derivation ofzerocopytraits (specifically,TryFromBytesandIntoBytes) on theCurrencyenum.
§Examples
The enumeration can be created from the three-character currency code:
use iso4217_static::Currency;
const CURRENCY: &str = "USD";
let actual = Currency::try_from(CURRENCY).expect("valid code");
assert_eq!(Currency::UsDollar, actual);
assert_eq!(CURRENCY, actual.as_ref());Numeric codes are also supported:
use iso4217_static::Currency;
const CURRENCY: u16 = 840;
let actual = Currency::try_from(CURRENCY).expect("valid code");
assert_eq!(Currency::UsDollar, actual);
assert_eq!(CURRENCY, actual as u16);There are also methods to get the universal currency for a given country (if the country has one):
use iso3166_static::Alpha2;
use iso4217_static::Currency;
let actual = Currency::try_from(Alpha2::UnitedStatesOfAmerica).expect("country");
assert_eq!(Currency::UsDollar, actual);Modules§
- serde
- Serde support for ISO 4217.