use serde::Deserialize;
use std::collections::BTreeMap;
use tinystr::TinyAsciiStr;
type ISOCode = TinyAsciiStr<3>;
#[derive(PartialEq, Debug, Deserialize)]
pub(crate) struct RoundingModes {
#[serde(rename = "_rounding")]
pub(crate) rounding: Option<String>,
#[serde(rename = "_digits")]
pub(crate) digits: Option<String>,
#[serde(rename = "_cashRounding")]
pub(crate) cash_rounding: Option<String>,
#[serde(rename = "_cashDigits")]
pub(crate) cash_digits: Option<String>,
}
#[derive(PartialEq, Debug, Deserialize)]
pub(crate) struct Fractions {
#[serde(rename = "DEFAULT")]
pub(crate) default: RoundingModes,
#[serde(flatten)]
pub(crate) currencies: BTreeMap<ISOCode, RoundingModes>,
}
#[derive(PartialEq, Debug, Deserialize)]
pub(crate) struct CurrencyData {
pub(crate) fractions: Fractions,
}
#[derive(PartialEq, Debug, Deserialize)]
pub(crate) struct Supplemental {
#[serde(rename = "currencyData")]
pub(crate) currency_data: CurrencyData,
}
#[derive(PartialEq, Debug, Deserialize)]
#[allow(
dead_code,
reason = "This is WIP, remove this annotation when this component is done"
)]
pub(crate) struct Resource {
pub(crate) supplemental: Supplemental,
}