pub struct ScriptWithExtensions { /* private fields */ }Expand description
A struct that represents the data for the Script and Script_Extensions properties.
✨ Enabled with the compiled_data Cargo feature.
Most useful methods are on ScriptWithExtensionsBorrowed obtained by calling ScriptWithExtensions::as_borrowed()
§Examples
use icu::properties::script::ScriptWithExtensions;
use icu::properties::props::Script;
let swe = ScriptWithExtensions::new();
// get the `Script` property value
assert_eq!(swe.get_script_val('ـ'), Script::Common); // U+0640 ARABIC TATWEEL
assert_eq!(swe.get_script_val('\u{0650}'), Script::Inherited); // U+0650 ARABIC KASRA
assert_eq!(swe.get_script_val('٠'), Script::Arabic); // // U+0660 ARABIC-INDIC DIGIT ZERO
assert_eq!(swe.get_script_val('ﷲ'), Script::Arabic); // U+FDF2 ARABIC LIGATURE ALLAH ISOLATED FORM
// get the `Script_Extensions` property value
assert_eq!(
swe.get_script_extensions_val('ـ') // U+0640 ARABIC TATWEEL
.iter().collect::<Vec<_>>(),
[Script::Arabic, Script::Syriac, Script::Mandaic, Script::Manichaean,
Script::PsalterPahlavi, Script::Adlam, Script::HanifiRohingya, Script::Sogdian,
Script::OldUyghur]
);
assert_eq!(
swe.get_script_extensions_val('🥳') // U+1F973 FACE WITH PARTY HORN AND PARTY HAT
.iter().collect::<Vec<_>>(),
[Script::Common]
);
assert_eq!(
swe.get_script_extensions_val('\u{200D}') // ZERO WIDTH JOINER
.iter().collect::<Vec<_>>(),
[Script::Inherited]
);
assert_eq!(
swe.get_script_extensions_val('௫') // U+0BEB TAMIL DIGIT FIVE
.iter().collect::<Vec<_>>(),
[Script::Tamil, Script::Grantha]
);
// check containment of a `Script` value in the `Script_Extensions` value
// U+0650 ARABIC KASRA
assert!(!swe.has_script('\u{0650}', Script::Inherited)); // main Script value
assert!(swe.has_script('\u{0650}', Script::Arabic));
assert!(swe.has_script('\u{0650}', Script::Syriac));
assert!(!swe.has_script('\u{0650}', Script::Thaana));
// get a `CodePointInversionList` for when `Script` value is contained in `Script_Extensions` value
let syriac = swe.get_script_extensions_set(Script::Syriac);
assert!(syriac.contains('\u{0650}')); // ARABIC KASRA
assert!(!syriac.contains('٠')); // ARABIC-INDIC DIGIT ZERO
assert!(!syriac.contains('ﷲ')); // ARABIC LIGATURE ALLAH ISOLATED FORM
assert!(syriac.contains('܀')); // SYRIAC END OF PARAGRAPH
assert!(syriac.contains('\u{074A}')); // SYRIAC BARREKHImplementations§
Source§impl ScriptWithExtensions
impl ScriptWithExtensions
Sourcepub fn new() -> ScriptWithExtensionsBorrowed<'static>
pub fn new() -> ScriptWithExtensionsBorrowed<'static>
Creates a new instance of ScriptWithExtensionsBorrowed using compiled data.
✨ Enabled with the compiled_data Cargo feature.
Sourcepub fn try_new_unstable(
provider: &(impl DataProvider<PropertyScriptWithExtensionsV1> + ?Sized),
) -> Result<Self, DataError>
pub fn try_new_unstable( provider: &(impl DataProvider<PropertyScriptWithExtensionsV1> + ?Sized), ) -> Result<Self, DataError>
A version of Self::new that uses custom data provided by a DataProvider.
⚠️ The bounds on provider may change over time, including in SemVer minor releases.
Sourcepub fn as_borrowed(&self) -> ScriptWithExtensionsBorrowed<'_>
pub fn as_borrowed(&self) -> ScriptWithExtensionsBorrowed<'_>
Construct a borrowed version of this type that can be queried.
This avoids a potential small underlying cost per API call (ex: contains()) by consolidating it
up front.