use serde::Deserialize;
use std::collections::{BTreeMap, HashSet};
#[derive(PartialEq, Debug, Deserialize)]
pub(crate) struct UnitPreference {
pub(crate) unit: String,
#[serde(rename = "geq")]
pub(crate) greater_or_equal: Option<f64>,
}
pub(crate) type RegionPreferences = BTreeMap<String, Vec<UnitPreference>>;
pub(crate) type UsagePreferences = BTreeMap<String, RegionPreferences>;
pub(crate) type CategoryPreferences = BTreeMap<String, UsagePreferences>;
#[derive(PartialEq, Debug, Deserialize)]
pub(crate) struct Supplemental {
#[serde(rename = "version")]
pub(crate) version: Option<BTreeMap<String, String>>,
#[serde(rename = "unitPreferenceData")]
pub(crate) unit_preference_data: CategoryPreferences,
}
#[derive(Deserialize)]
pub(crate) struct Resource {
pub(crate) supplemental: Supplemental,
}
#[derive(PartialEq)]
pub(crate) enum UnitType {
Core,
Extended,
Outlier,
}
pub(crate) type CategorizedUnitsList = BTreeMap<String, BTreeMap<String, HashSet<String>>>;