Skip to content

Commit

Permalink
fix(cldr): Wire in all sub KeyedDataProviders to CldrJsonDataProvider.
Browse files Browse the repository at this point in the history
I've added a test for all keys based on the assumption that the prior
omission is a mistake rather than a design decision since the
sub-providers all implement KeyedDataProvider.
  • Loading branch information
mildgravitas committed Jan 4, 2022
1 parent 9fdbd62 commit 450d2f6
Showing 1 changed file with 15 additions and 0 deletions.
15 changes: 15 additions & 0 deletions provider/cldr/src/transform/mod.rs
Original file line number Diff line number Diff line change
Expand Up @@ -188,9 +188,24 @@ impl<'a> IterableProvider for CldrJsonDataProvider<'a> {
impl<'a> KeyedDataProvider for CldrJsonDataProvider<'a> {
fn supports_key(resc_key: &ResourceKey) -> Result<(), DataError> {
PluralsProvider::supports_key(resc_key)
.or_else(|err| AliasesProvider::or_else_supports_key(err, resc_key))
.or_else(|err| DateSymbolsProvider::or_else_supports_key(err, resc_key))
.or_else(|err| DateSkeletonPatternsProvider::or_else_supports_key(err, resc_key))
.or_else(|err| DatePatternsProvider::or_else_supports_key(err, resc_key))
.or_else(|err| JapaneseErasProvider::or_else_supports_key(err, resc_key))
.or_else(|err| LikelySubtagsProvider::or_else_supports_key(err, resc_key))
.or_else(|err| ListProvider::or_else_supports_key(err, resc_key))
.or_else(|err| NumbersProvider::or_else_supports_key(err, resc_key))
.or_else(|err| TimeZonesProvider::or_else_supports_key(err, resc_key))
}
}

#[test]
fn all_keys_are_known_at_compile_time() {
use crate::support::KeyedDataProvider;

for key in &get_all_cldr_keys() {
CldrJsonDataProvider::supports_key(key)
.expect("supports_key() should return ok for all supported keys")
}
}

0 comments on commit 450d2f6

Please sign in to comment.