icu_locale_core/preferences/extensions/unicode/keywords/
dictionary_break.rs1use crate::extensions::unicode::Value;
6use crate::preferences::extensions::unicode::errors::PreferencesParseError;
7use crate::preferences::extensions::unicode::struct_keyword;
8use crate::subtags::Script;
9use alloc::vec::Vec;
10use core::str::FromStr;
11
12struct_keyword!(
13 DictionaryBreakScriptExclusions,
20 "dx",
21 Vec<Script>,
22 |input: &Value| {
23 input
24 .as_subtags_slice()
25 .iter()
26 .map(|s| {
27 Script::from_str(s.as_str()).map_err(|_| PreferencesParseError::InvalidKeywordValue)
28 })
29 .collect::<Result<_, _>>()
30 .map(Self)
31 },
32 |input: &DictionaryBreakScriptExclusions| {
33 input.0.iter().copied().map(Into::into).collect()
34 }
35);