Struct icu::properties::script::ScriptWithExtensions
source · 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 BARREKH
Implementations§
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_with_any_provider(
provider: &(impl AnyProvider + ?Sized),
) -> Result<ScriptWithExtensions, DataError>
pub fn try_new_with_any_provider( provider: &(impl AnyProvider + ?Sized), ) -> Result<ScriptWithExtensions, DataError>
A version of [Self :: new
] that uses custom data provided by an AnyProvider
.
sourcepub fn try_new_with_buffer_provider(
provider: &(impl BufferProvider + ?Sized),
) -> Result<ScriptWithExtensions, DataError>
pub fn try_new_with_buffer_provider( provider: &(impl BufferProvider + ?Sized), ) -> Result<ScriptWithExtensions, DataError>
A version of [Self :: new
] that uses custom data provided by a BufferProvider
.
✨ Enabled with the serde
feature.
sourcepub fn try_new_unstable(
provider: &(impl DataProvider<ScriptWithExtensionsPropertyV1Marker> + ?Sized),
) -> Result<ScriptWithExtensions, DataError>
pub fn try_new_unstable( provider: &(impl DataProvider<ScriptWithExtensionsPropertyV1Marker> + ?Sized), ) -> Result<ScriptWithExtensions, DataError>
A version of Self::new
that uses custom data provided by a DataProvider
.
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.
Trait Implementations§
Auto Trait Implementations§
impl Freeze for ScriptWithExtensions
impl RefUnwindSafe for ScriptWithExtensions
impl Send for ScriptWithExtensions
impl Sync for ScriptWithExtensions
impl Unpin for ScriptWithExtensions
impl UnwindSafe for ScriptWithExtensions
Blanket Implementations§
source§impl<T> BorrowMut<T> for Twhere
T: ?Sized,
impl<T> BorrowMut<T> for Twhere
T: ?Sized,
source§fn borrow_mut(&mut self) -> &mut T
fn borrow_mut(&mut self) -> &mut T
source§impl<T> IntoEither for T
impl<T> IntoEither for T
source§fn into_either(self, into_left: bool) -> Either<Self, Self>
fn into_either(self, into_left: bool) -> Either<Self, Self>
self
into a Left
variant of Either<Self, Self>
if into_left
is true
.
Converts self
into a Right
variant of Either<Self, Self>
otherwise. Read moresource§fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
self
into a Left
variant of Either<Self, Self>
if into_left(&self)
returns true
.
Converts self
into a Right
variant of Either<Self, Self>
otherwise. Read more