use icu_datetime::fieldsets::{self, enums::ZoneFieldSet};
use serde::{Deserialize, Serialize};
use std::collections::HashMap;
#[derive(Debug, Clone, PartialEq, Serialize, Deserialize)]
pub struct TimeZoneTests(pub Vec<TimeZoneTest>);
#[derive(Debug, Clone, PartialEq, Serialize, Deserialize)]
pub struct TimeZoneTest {
pub locale: String,
pub datetime: String,
pub expectations: HashMap<String, String>,
}
pub fn pattern_to_semantic_skeleton(p: &str) -> Option<ZoneFieldSet> {
Some(match p {
"vvvv" => ZoneFieldSet::GenericLong(fieldsets::zone::GenericLong),
"v" => ZoneFieldSet::GenericShort(fieldsets::zone::GenericShort),
"VVVV" => ZoneFieldSet::Location(fieldsets::zone::Location),
"zzzz" => ZoneFieldSet::SpecificLong(fieldsets::zone::SpecificLong),
"z" => ZoneFieldSet::SpecificShort(fieldsets::zone::SpecificShort),
"OOOO" => ZoneFieldSet::LocalizedOffsetLong(fieldsets::zone::LocalizedOffsetLong),
"O" => ZoneFieldSet::LocalizedOffsetShort(fieldsets::zone::LocalizedOffsetShort),
"VVV" => ZoneFieldSet::ExemplarCity(fieldsets::zone::ExemplarCity),
"x" | "xx" | "xxx" | "xxxx" | "xxxxx" | "X" | "XX" | "XXX" | "XXXX" | "XXXXX" => {
return None
}
_ => panic!("unhandled test {p}"),
})
}