summaryrefslogtreecommitdiffstats
path: root/intl/icu_capi/src/properties_sets.rs
diff options
context:
space:
mode:
Diffstat (limited to 'intl/icu_capi/src/properties_sets.rs')
-rw-r--r--intl/icu_capi/src/properties_sets.rs887
1 files changed, 887 insertions, 0 deletions
diff --git a/intl/icu_capi/src/properties_sets.rs b/intl/icu_capi/src/properties_sets.rs
new file mode 100644
index 0000000000..af14b9cbc8
--- /dev/null
+++ b/intl/icu_capi/src/properties_sets.rs
@@ -0,0 +1,887 @@
+// This file is part of ICU4X. For terms of use, please see the file
+// called LICENSE at the top level of the ICU4X source tree
+// (online at: https://github.com/unicode-org/icu4x/blob/main/LICENSE ).
+
+#[diplomat::bridge]
+pub mod ffi {
+ use crate::provider::ffi::ICU4XDataProvider;
+ use alloc::boxed::Box;
+ use core::str;
+ use icu_properties::sets;
+
+ use crate::errors::ffi::ICU4XError;
+ use crate::properties_iter::ffi::CodePointRangeIterator;
+
+ #[diplomat::opaque]
+ /// An ICU4X Unicode Set Property object, capable of querying whether a code point is contained in a set based on a Unicode property.
+ #[diplomat::rust_link(icu::properties, Mod)]
+ #[diplomat::rust_link(icu::properties::sets::CodePointSetData, Struct)]
+ #[diplomat::rust_link(icu::properties::sets::CodePointSetData::from_data, FnInStruct, hidden)]
+ #[diplomat::rust_link(icu::properties::sets::CodePointSetDataBorrowed, Struct)]
+ pub struct ICU4XCodePointSetData(pub sets::CodePointSetData);
+
+ impl ICU4XCodePointSetData {
+ /// Checks whether the code point is in the set.
+ #[diplomat::rust_link(
+ icu::properties::sets::CodePointSetDataBorrowed::contains,
+ FnInStruct
+ )]
+ pub fn contains(&self, cp: char) -> bool {
+ self.0.as_borrowed().contains(cp)
+ }
+ /// Checks whether the code point (specified as a 32 bit integer, in UTF-32) is in the set.
+ #[diplomat::rust_link(
+ icu::properties::sets::CodePointSetDataBorrowed::contains32,
+ FnInStruct,
+ hidden
+ )]
+ #[diplomat::attr(dart, disable)]
+ pub fn contains32(&self, cp: u32) -> bool {
+ self.0.as_borrowed().contains32(cp)
+ }
+
+ /// Produces an iterator over ranges of code points contained in this set
+ #[diplomat::rust_link(
+ icu::properties::sets::CodePointSetDataBorrowed::iter_ranges,
+ FnInStruct
+ )]
+ pub fn iter_ranges<'a>(&'a self) -> Box<CodePointRangeIterator<'a>> {
+ Box::new(CodePointRangeIterator(Box::new(
+ self.0.as_borrowed().iter_ranges(),
+ )))
+ }
+
+ /// Produces an iterator over ranges of code points not contained in this set
+ #[diplomat::rust_link(
+ icu::properties::sets::CodePointSetDataBorrowed::iter_ranges_complemented,
+ FnInStruct
+ )]
+ pub fn iter_ranges_complemented<'a>(&'a self) -> Box<CodePointRangeIterator<'a>> {
+ Box::new(CodePointRangeIterator(Box::new(
+ self.0.as_borrowed().iter_ranges_complemented(),
+ )))
+ }
+
+ /// which is a mask with the same format as the `U_GC_XX_MASK` mask in ICU4C
+ #[diplomat::rust_link(icu::properties::sets::for_general_category_group, Fn)]
+ #[diplomat::rust_link(icu::properties::sets::load_for_general_category_group, Fn, hidden)]
+ pub fn load_for_general_category_group(
+ provider: &ICU4XDataProvider,
+ group: u32,
+ ) -> Result<Box<ICU4XCodePointSetData>, ICU4XError> {
+ Ok(Box::new(ICU4XCodePointSetData(call_constructor_unstable!(
+ sets::for_general_category_group [r => Ok(r)],
+ sets::load_for_general_category_group,
+ provider,
+ group.into(),
+ )?)))
+ }
+
+ #[diplomat::rust_link(icu::properties::sets::ascii_hex_digit, Fn)]
+ #[diplomat::rust_link(icu::properties::sets::load_ascii_hex_digit, Fn, hidden)]
+ pub fn load_ascii_hex_digit(
+ provider: &ICU4XDataProvider,
+ ) -> Result<Box<ICU4XCodePointSetData>, ICU4XError> {
+ Ok(Box::new(ICU4XCodePointSetData(call_constructor_unstable!(
+ sets::ascii_hex_digit [r => Ok(r.static_to_owned())],
+ sets::load_ascii_hex_digit,
+ provider
+ )?)))
+ }
+
+ #[diplomat::rust_link(icu::properties::sets::alnum, Fn)]
+ #[diplomat::rust_link(icu::properties::sets::load_alnum, Fn, hidden)]
+ pub fn load_alnum(
+ provider: &ICU4XDataProvider,
+ ) -> Result<Box<ICU4XCodePointSetData>, ICU4XError> {
+ Ok(Box::new(ICU4XCodePointSetData(call_constructor_unstable!(
+ sets::alnum [r => Ok(r.static_to_owned())],
+ sets::load_alnum,
+ provider
+ )?)))
+ }
+
+ #[diplomat::rust_link(icu::properties::sets::alphabetic, Fn)]
+ #[diplomat::rust_link(icu::properties::sets::load_alphabetic, Fn, hidden)]
+ pub fn load_alphabetic(
+ provider: &ICU4XDataProvider,
+ ) -> Result<Box<ICU4XCodePointSetData>, ICU4XError> {
+ Ok(Box::new(ICU4XCodePointSetData(call_constructor_unstable!(
+ sets::alphabetic [r => Ok(r.static_to_owned())],
+ sets::load_alphabetic,
+ provider
+ )?)))
+ }
+
+ #[diplomat::rust_link(icu::properties::sets::bidi_control, Fn)]
+ #[diplomat::rust_link(icu::properties::sets::load_bidi_control, Fn, hidden)]
+ pub fn load_bidi_control(
+ provider: &ICU4XDataProvider,
+ ) -> Result<Box<ICU4XCodePointSetData>, ICU4XError> {
+ Ok(Box::new(ICU4XCodePointSetData(call_constructor_unstable!(
+ sets::bidi_control [r => Ok(r.static_to_owned())],
+ sets::load_bidi_control,
+ provider
+ )?)))
+ }
+
+ #[diplomat::rust_link(icu::properties::sets::bidi_mirrored, Fn)]
+ #[diplomat::rust_link(icu::properties::sets::load_bidi_mirrored, Fn, hidden)]
+ pub fn load_bidi_mirrored(
+ provider: &ICU4XDataProvider,
+ ) -> Result<Box<ICU4XCodePointSetData>, ICU4XError> {
+ Ok(Box::new(ICU4XCodePointSetData(call_constructor_unstable!(
+ sets::bidi_mirrored [r => Ok(r.static_to_owned())],
+ sets::load_bidi_mirrored,
+ provider
+ )?)))
+ }
+
+ #[diplomat::rust_link(icu::properties::sets::blank, Fn)]
+ #[diplomat::rust_link(icu::properties::sets::load_blank, Fn, hidden)]
+ pub fn load_blank(
+ provider: &ICU4XDataProvider,
+ ) -> Result<Box<ICU4XCodePointSetData>, ICU4XError> {
+ Ok(Box::new(ICU4XCodePointSetData(call_constructor_unstable!(
+ sets::blank [r => Ok(r.static_to_owned())],
+ sets::load_blank,
+ provider
+ )?)))
+ }
+
+ #[diplomat::rust_link(icu::properties::sets::cased, Fn)]
+ #[diplomat::rust_link(icu::properties::sets::load_cased, Fn, hidden)]
+ pub fn load_cased(
+ provider: &ICU4XDataProvider,
+ ) -> Result<Box<ICU4XCodePointSetData>, ICU4XError> {
+ Ok(Box::new(ICU4XCodePointSetData(call_constructor_unstable!(
+ sets::cased [r => Ok(r.static_to_owned())],
+ sets::load_cased,
+ provider
+ )?)))
+ }
+
+ #[diplomat::rust_link(icu::properties::sets::case_ignorable, Fn)]
+ #[diplomat::rust_link(icu::properties::sets::load_case_ignorable, Fn, hidden)]
+ pub fn load_case_ignorable(
+ provider: &ICU4XDataProvider,
+ ) -> Result<Box<ICU4XCodePointSetData>, ICU4XError> {
+ Ok(Box::new(ICU4XCodePointSetData(call_constructor_unstable!(
+ sets::case_ignorable [r => Ok(r.static_to_owned())],
+ sets::load_case_ignorable,
+ provider
+ )?)))
+ }
+
+ #[diplomat::rust_link(icu::properties::sets::full_composition_exclusion, Fn)]
+ #[diplomat::rust_link(icu::properties::sets::load_full_composition_exclusion, Fn, hidden)]
+ pub fn load_full_composition_exclusion(
+ provider: &ICU4XDataProvider,
+ ) -> Result<Box<ICU4XCodePointSetData>, ICU4XError> {
+ Ok(Box::new(ICU4XCodePointSetData(call_constructor_unstable!(
+ sets::full_composition_exclusion [r => Ok(r.static_to_owned())],
+ sets::load_full_composition_exclusion,
+ provider
+ )?)))
+ }
+
+ #[diplomat::rust_link(icu::properties::sets::changes_when_casefolded, Fn)]
+ #[diplomat::rust_link(icu::properties::sets::load_changes_when_casefolded, Fn, hidden)]
+ pub fn load_changes_when_casefolded(
+ provider: &ICU4XDataProvider,
+ ) -> Result<Box<ICU4XCodePointSetData>, ICU4XError> {
+ Ok(Box::new(ICU4XCodePointSetData(call_constructor_unstable!(
+ sets::changes_when_casefolded [r => Ok(r.static_to_owned())],
+ sets::load_changes_when_casefolded,
+ provider
+ )?)))
+ }
+
+ #[diplomat::rust_link(icu::properties::sets::changes_when_casemapped, Fn)]
+ #[diplomat::rust_link(icu::properties::sets::load_changes_when_casemapped, Fn, hidden)]
+ pub fn load_changes_when_casemapped(
+ provider: &ICU4XDataProvider,
+ ) -> Result<Box<ICU4XCodePointSetData>, ICU4XError> {
+ Ok(Box::new(ICU4XCodePointSetData(call_constructor_unstable!(
+ sets::changes_when_casemapped [r => Ok(r.static_to_owned())],
+ sets::load_changes_when_casemapped,
+ provider
+ )?)))
+ }
+
+ #[diplomat::rust_link(icu::properties::sets::changes_when_nfkc_casefolded, Fn)]
+ #[diplomat::rust_link(icu::properties::sets::load_changes_when_nfkc_casefolded, Fn, hidden)]
+ pub fn load_changes_when_nfkc_casefolded(
+ provider: &ICU4XDataProvider,
+ ) -> Result<Box<ICU4XCodePointSetData>, ICU4XError> {
+ Ok(Box::new(ICU4XCodePointSetData(call_constructor_unstable!(
+ sets::changes_when_nfkc_casefolded [r => Ok(r.static_to_owned())],
+ sets::load_changes_when_nfkc_casefolded,
+ provider
+ )?)))
+ }
+
+ #[diplomat::rust_link(icu::properties::sets::changes_when_lowercased, Fn)]
+ #[diplomat::rust_link(icu::properties::sets::load_changes_when_lowercased, Fn, hidden)]
+ pub fn load_changes_when_lowercased(
+ provider: &ICU4XDataProvider,
+ ) -> Result<Box<ICU4XCodePointSetData>, ICU4XError> {
+ Ok(Box::new(ICU4XCodePointSetData(call_constructor_unstable!(
+ sets::changes_when_lowercased [r => Ok(r.static_to_owned())],
+ sets::load_changes_when_lowercased,
+ provider
+ )?)))
+ }
+
+ #[diplomat::rust_link(icu::properties::sets::changes_when_titlecased, Fn)]
+ #[diplomat::rust_link(icu::properties::sets::load_changes_when_titlecased, Fn, hidden)]
+ pub fn load_changes_when_titlecased(
+ provider: &ICU4XDataProvider,
+ ) -> Result<Box<ICU4XCodePointSetData>, ICU4XError> {
+ Ok(Box::new(ICU4XCodePointSetData(call_constructor_unstable!(
+ sets::changes_when_titlecased [r => Ok(r.static_to_owned())],
+ sets::load_changes_when_titlecased,
+ provider
+ )?)))
+ }
+
+ #[diplomat::rust_link(icu::properties::sets::changes_when_uppercased, Fn)]
+ #[diplomat::rust_link(icu::properties::sets::load_changes_when_uppercased, Fn, hidden)]
+ pub fn load_changes_when_uppercased(
+ provider: &ICU4XDataProvider,
+ ) -> Result<Box<ICU4XCodePointSetData>, ICU4XError> {
+ Ok(Box::new(ICU4XCodePointSetData(call_constructor_unstable!(
+ sets::changes_when_uppercased [r => Ok(r.static_to_owned())],
+ sets::load_changes_when_uppercased,
+ provider
+ )?)))
+ }
+
+ #[diplomat::rust_link(icu::properties::sets::dash, Fn)]
+ #[diplomat::rust_link(icu::properties::sets::load_dash, Fn, hidden)]
+ pub fn load_dash(
+ provider: &ICU4XDataProvider,
+ ) -> Result<Box<ICU4XCodePointSetData>, ICU4XError> {
+ Ok(Box::new(ICU4XCodePointSetData(call_constructor_unstable!(
+ sets::dash [r => Ok(r.static_to_owned())],
+ sets::load_dash,
+ provider
+ )?)))
+ }
+
+ #[diplomat::rust_link(icu::properties::sets::deprecated, Fn)]
+ #[diplomat::rust_link(icu::properties::sets::load_deprecated, Fn, hidden)]
+ pub fn load_deprecated(
+ provider: &ICU4XDataProvider,
+ ) -> Result<Box<ICU4XCodePointSetData>, ICU4XError> {
+ Ok(Box::new(ICU4XCodePointSetData(call_constructor_unstable!(
+ sets::deprecated [r => Ok(r.static_to_owned())],
+ sets::load_deprecated,
+ provider
+ )?)))
+ }
+
+ #[diplomat::rust_link(icu::properties::sets::default_ignorable_code_point, Fn)]
+ #[diplomat::rust_link(icu::properties::sets::load_default_ignorable_code_point, Fn, hidden)]
+ pub fn load_default_ignorable_code_point(
+ provider: &ICU4XDataProvider,
+ ) -> Result<Box<ICU4XCodePointSetData>, ICU4XError> {
+ Ok(Box::new(ICU4XCodePointSetData(call_constructor_unstable!(
+ sets::default_ignorable_code_point [r => Ok(r.static_to_owned())],
+ sets::load_default_ignorable_code_point,
+ provider
+ )?)))
+ }
+
+ #[diplomat::rust_link(icu::properties::sets::diacritic, Fn)]
+ #[diplomat::rust_link(icu::properties::sets::load_diacritic, Fn, hidden)]
+ pub fn load_diacritic(
+ provider: &ICU4XDataProvider,
+ ) -> Result<Box<ICU4XCodePointSetData>, ICU4XError> {
+ Ok(Box::new(ICU4XCodePointSetData(call_constructor_unstable!(
+ sets::diacritic [r => Ok(r.static_to_owned())],
+ sets::load_diacritic,
+ provider
+ )?)))
+ }
+
+ #[diplomat::rust_link(icu::properties::sets::emoji_modifier_base, Fn)]
+ #[diplomat::rust_link(icu::properties::sets::load_emoji_modifier_base, Fn, hidden)]
+ pub fn load_emoji_modifier_base(
+ provider: &ICU4XDataProvider,
+ ) -> Result<Box<ICU4XCodePointSetData>, ICU4XError> {
+ Ok(Box::new(ICU4XCodePointSetData(call_constructor_unstable!(
+ sets::emoji_modifier_base [r => Ok(r.static_to_owned())],
+ sets::load_emoji_modifier_base,
+ provider
+ )?)))
+ }
+
+ #[diplomat::rust_link(icu::properties::sets::emoji_component, Fn)]
+ #[diplomat::rust_link(icu::properties::sets::load_emoji_component, Fn, hidden)]
+ pub fn load_emoji_component(
+ provider: &ICU4XDataProvider,
+ ) -> Result<Box<ICU4XCodePointSetData>, ICU4XError> {
+ Ok(Box::new(ICU4XCodePointSetData(call_constructor_unstable!(
+ sets::emoji_component [r => Ok(r.static_to_owned())],
+ sets::load_emoji_component,
+ provider
+ )?)))
+ }
+
+ #[diplomat::rust_link(icu::properties::sets::emoji_modifier, Fn)]
+ #[diplomat::rust_link(icu::properties::sets::load_emoji_modifier, Fn, hidden)]
+ pub fn load_emoji_modifier(
+ provider: &ICU4XDataProvider,
+ ) -> Result<Box<ICU4XCodePointSetData>, ICU4XError> {
+ Ok(Box::new(ICU4XCodePointSetData(call_constructor_unstable!(
+ sets::emoji_modifier [r => Ok(r.static_to_owned())],
+ sets::load_emoji_modifier,
+ provider
+ )?)))
+ }
+
+ #[diplomat::rust_link(icu::properties::sets::emoji, Fn)]
+ #[diplomat::rust_link(icu::properties::sets::load_emoji, Fn, hidden)]
+ pub fn load_emoji(
+ provider: &ICU4XDataProvider,
+ ) -> Result<Box<ICU4XCodePointSetData>, ICU4XError> {
+ Ok(Box::new(ICU4XCodePointSetData(call_constructor_unstable!(
+ sets::emoji [r => Ok(r.static_to_owned())],
+ sets::load_emoji,
+ provider
+ )?)))
+ }
+
+ #[diplomat::rust_link(icu::properties::sets::emoji_presentation, Fn)]
+ #[diplomat::rust_link(icu::properties::sets::load_emoji_presentation, Fn, hidden)]
+ pub fn load_emoji_presentation(
+ provider: &ICU4XDataProvider,
+ ) -> Result<Box<ICU4XCodePointSetData>, ICU4XError> {
+ Ok(Box::new(ICU4XCodePointSetData(call_constructor_unstable!(
+ sets::emoji_presentation [r => Ok(r.static_to_owned())],
+ sets::load_emoji_presentation,
+ provider
+ )?)))
+ }
+
+ #[diplomat::rust_link(icu::properties::sets::extender, Fn)]
+ #[diplomat::rust_link(icu::properties::sets::load_extender, Fn, hidden)]
+ pub fn load_extender(
+ provider: &ICU4XDataProvider,
+ ) -> Result<Box<ICU4XCodePointSetData>, ICU4XError> {
+ Ok(Box::new(ICU4XCodePointSetData(call_constructor_unstable!(
+ sets::extender [r => Ok(r.static_to_owned())],
+ sets::load_extender,
+ provider
+ )?)))
+ }
+
+ #[diplomat::rust_link(icu::properties::sets::extended_pictographic, Fn)]
+ #[diplomat::rust_link(icu::properties::sets::load_extended_pictographic, Fn, hidden)]
+ pub fn load_extended_pictographic(
+ provider: &ICU4XDataProvider,
+ ) -> Result<Box<ICU4XCodePointSetData>, ICU4XError> {
+ Ok(Box::new(ICU4XCodePointSetData(call_constructor_unstable!(
+ sets::extended_pictographic [r => Ok(r.static_to_owned())],
+ sets::load_extended_pictographic,
+ provider
+ )?)))
+ }
+
+ #[diplomat::rust_link(icu::properties::sets::graph, Fn)]
+ #[diplomat::rust_link(icu::properties::sets::load_graph, Fn, hidden)]
+ pub fn load_graph(
+ provider: &ICU4XDataProvider,
+ ) -> Result<Box<ICU4XCodePointSetData>, ICU4XError> {
+ Ok(Box::new(ICU4XCodePointSetData(call_constructor_unstable!(
+ sets::graph [r => Ok(r.static_to_owned())],
+ sets::load_graph,
+ provider
+ )?)))
+ }
+
+ #[diplomat::rust_link(icu::properties::sets::grapheme_base, Fn)]
+ #[diplomat::rust_link(icu::properties::sets::load_grapheme_base, Fn, hidden)]
+ pub fn load_grapheme_base(
+ provider: &ICU4XDataProvider,
+ ) -> Result<Box<ICU4XCodePointSetData>, ICU4XError> {
+ Ok(Box::new(ICU4XCodePointSetData(call_constructor_unstable!(
+ sets::grapheme_base [r => Ok(r.static_to_owned())],
+ sets::load_grapheme_base,
+ provider
+ )?)))
+ }
+
+ #[diplomat::rust_link(icu::properties::sets::grapheme_extend, Fn)]
+ #[diplomat::rust_link(icu::properties::sets::load_grapheme_extend, Fn, hidden)]
+ pub fn load_grapheme_extend(
+ provider: &ICU4XDataProvider,
+ ) -> Result<Box<ICU4XCodePointSetData>, ICU4XError> {
+ Ok(Box::new(ICU4XCodePointSetData(call_constructor_unstable!(
+ sets::grapheme_extend [r => Ok(r.static_to_owned())],
+ sets::load_grapheme_extend,
+ provider
+ )?)))
+ }
+
+ #[diplomat::rust_link(icu::properties::sets::grapheme_link, Fn)]
+ #[diplomat::rust_link(icu::properties::sets::load_grapheme_link, Fn, hidden)]
+ pub fn load_grapheme_link(
+ provider: &ICU4XDataProvider,
+ ) -> Result<Box<ICU4XCodePointSetData>, ICU4XError> {
+ Ok(Box::new(ICU4XCodePointSetData(call_constructor_unstable!(
+ sets::grapheme_link [r => Ok(r.static_to_owned())],
+ sets::load_grapheme_link,
+ provider
+ )?)))
+ }
+
+ #[diplomat::rust_link(icu::properties::sets::hex_digit, Fn)]
+ #[diplomat::rust_link(icu::properties::sets::load_hex_digit, Fn, hidden)]
+ pub fn load_hex_digit(
+ provider: &ICU4XDataProvider,
+ ) -> Result<Box<ICU4XCodePointSetData>, ICU4XError> {
+ Ok(Box::new(ICU4XCodePointSetData(call_constructor_unstable!(
+ sets::hex_digit [r => Ok(r.static_to_owned())],
+ sets::load_hex_digit,
+ provider
+ )?)))
+ }
+
+ #[diplomat::rust_link(icu::properties::sets::hyphen, Fn)]
+ #[diplomat::rust_link(icu::properties::sets::load_hyphen, Fn, hidden)]
+ pub fn load_hyphen(
+ provider: &ICU4XDataProvider,
+ ) -> Result<Box<ICU4XCodePointSetData>, ICU4XError> {
+ Ok(Box::new(ICU4XCodePointSetData(call_constructor_unstable!(
+ sets::hyphen [r => Ok(r.static_to_owned())],
+ sets::load_hyphen,
+ provider
+ )?)))
+ }
+
+ #[diplomat::rust_link(icu::properties::sets::id_continue, Fn)]
+ #[diplomat::rust_link(icu::properties::sets::load_id_continue, Fn, hidden)]
+ pub fn load_id_continue(
+ provider: &ICU4XDataProvider,
+ ) -> Result<Box<ICU4XCodePointSetData>, ICU4XError> {
+ Ok(Box::new(ICU4XCodePointSetData(call_constructor_unstable!(
+ sets::id_continue [r => Ok(r.static_to_owned())],
+ sets::load_id_continue,
+ provider
+ )?)))
+ }
+
+ #[diplomat::rust_link(icu::properties::sets::ideographic, Fn)]
+ #[diplomat::rust_link(icu::properties::sets::load_ideographic, Fn, hidden)]
+ pub fn load_ideographic(
+ provider: &ICU4XDataProvider,
+ ) -> Result<Box<ICU4XCodePointSetData>, ICU4XError> {
+ Ok(Box::new(ICU4XCodePointSetData(call_constructor_unstable!(
+ sets::ideographic [r => Ok(r.static_to_owned())],
+ sets::load_ideographic,
+ provider
+ )?)))
+ }
+
+ #[diplomat::rust_link(icu::properties::sets::id_start, Fn)]
+ #[diplomat::rust_link(icu::properties::sets::load_id_start, Fn, hidden)]
+ pub fn load_id_start(
+ provider: &ICU4XDataProvider,
+ ) -> Result<Box<ICU4XCodePointSetData>, ICU4XError> {
+ Ok(Box::new(ICU4XCodePointSetData(call_constructor_unstable!(
+ sets::id_start [r => Ok(r.static_to_owned())],
+ sets::load_id_start,
+ provider
+ )?)))
+ }
+
+ #[diplomat::rust_link(icu::properties::sets::ids_binary_operator, Fn)]
+ #[diplomat::rust_link(icu::properties::sets::load_ids_binary_operator, Fn, hidden)]
+ pub fn load_ids_binary_operator(
+ provider: &ICU4XDataProvider,
+ ) -> Result<Box<ICU4XCodePointSetData>, ICU4XError> {
+ Ok(Box::new(ICU4XCodePointSetData(call_constructor_unstable!(
+ sets::ids_binary_operator [r => Ok(r.static_to_owned())],
+ sets::load_ids_binary_operator,
+ provider
+ )?)))
+ }
+
+ #[diplomat::rust_link(icu::properties::sets::ids_trinary_operator, Fn)]
+ #[diplomat::rust_link(icu::properties::sets::load_ids_trinary_operator, Fn, hidden)]
+ pub fn load_ids_trinary_operator(
+ provider: &ICU4XDataProvider,
+ ) -> Result<Box<ICU4XCodePointSetData>, ICU4XError> {
+ Ok(Box::new(ICU4XCodePointSetData(call_constructor_unstable!(
+ sets::ids_trinary_operator [r => Ok(r.static_to_owned())],
+ sets::load_ids_trinary_operator,
+ provider
+ )?)))
+ }
+
+ #[diplomat::rust_link(icu::properties::sets::join_control, Fn)]
+ #[diplomat::rust_link(icu::properties::sets::load_join_control, Fn, hidden)]
+ pub fn load_join_control(
+ provider: &ICU4XDataProvider,
+ ) -> Result<Box<ICU4XCodePointSetData>, ICU4XError> {
+ Ok(Box::new(ICU4XCodePointSetData(call_constructor_unstable!(
+ sets::join_control [r => Ok(r.static_to_owned())],
+ sets::load_join_control,
+ provider
+ )?)))
+ }
+
+ #[diplomat::rust_link(icu::properties::sets::logical_order_exception, Fn)]
+ #[diplomat::rust_link(icu::properties::sets::load_logical_order_exception, Fn, hidden)]
+ pub fn load_logical_order_exception(
+ provider: &ICU4XDataProvider,
+ ) -> Result<Box<ICU4XCodePointSetData>, ICU4XError> {
+ Ok(Box::new(ICU4XCodePointSetData(call_constructor_unstable!(
+ sets::logical_order_exception [r => Ok(r.static_to_owned())],
+ sets::load_logical_order_exception,
+ provider
+ )?)))
+ }
+
+ #[diplomat::rust_link(icu::properties::sets::lowercase, Fn)]
+ #[diplomat::rust_link(icu::properties::sets::load_lowercase, Fn, hidden)]
+ pub fn load_lowercase(
+ provider: &ICU4XDataProvider,
+ ) -> Result<Box<ICU4XCodePointSetData>, ICU4XError> {
+ Ok(Box::new(ICU4XCodePointSetData(call_constructor_unstable!(
+ sets::lowercase [r => Ok(r.static_to_owned())],
+ sets::load_lowercase,
+ provider
+ )?)))
+ }
+
+ #[diplomat::rust_link(icu::properties::sets::math, Fn)]
+ #[diplomat::rust_link(icu::properties::sets::load_math, Fn, hidden)]
+ pub fn load_math(
+ provider: &ICU4XDataProvider,
+ ) -> Result<Box<ICU4XCodePointSetData>, ICU4XError> {
+ Ok(Box::new(ICU4XCodePointSetData(call_constructor_unstable!(
+ sets::math [r => Ok(r.static_to_owned())],
+ sets::load_math,
+ provider
+ )?)))
+ }
+
+ #[diplomat::rust_link(icu::properties::sets::noncharacter_code_point, Fn)]
+ #[diplomat::rust_link(icu::properties::sets::load_noncharacter_code_point, Fn, hidden)]
+ pub fn load_noncharacter_code_point(
+ provider: &ICU4XDataProvider,
+ ) -> Result<Box<ICU4XCodePointSetData>, ICU4XError> {
+ Ok(Box::new(ICU4XCodePointSetData(call_constructor_unstable!(
+ sets::noncharacter_code_point [r => Ok(r.static_to_owned())],
+ sets::load_noncharacter_code_point,
+ provider
+ )?)))
+ }
+
+ #[diplomat::rust_link(icu::properties::sets::nfc_inert, Fn)]
+ #[diplomat::rust_link(icu::properties::sets::load_nfc_inert, Fn, hidden)]
+ pub fn load_nfc_inert(
+ provider: &ICU4XDataProvider,
+ ) -> Result<Box<ICU4XCodePointSetData>, ICU4XError> {
+ Ok(Box::new(ICU4XCodePointSetData(call_constructor_unstable!(
+ sets::nfc_inert [r => Ok(r.static_to_owned())],
+ sets::load_nfc_inert,
+ provider
+ )?)))
+ }
+
+ #[diplomat::rust_link(icu::properties::sets::nfd_inert, Fn)]
+ #[diplomat::rust_link(icu::properties::sets::load_nfd_inert, Fn, hidden)]
+ pub fn load_nfd_inert(
+ provider: &ICU4XDataProvider,
+ ) -> Result<Box<ICU4XCodePointSetData>, ICU4XError> {
+ Ok(Box::new(ICU4XCodePointSetData(call_constructor_unstable!(
+ sets::nfd_inert [r => Ok(r.static_to_owned())],
+ sets::load_nfd_inert,
+ provider
+ )?)))
+ }
+
+ #[diplomat::rust_link(icu::properties::sets::nfkc_inert, Fn)]
+ #[diplomat::rust_link(icu::properties::sets::load_nfkc_inert, Fn, hidden)]
+ pub fn load_nfkc_inert(
+ provider: &ICU4XDataProvider,
+ ) -> Result<Box<ICU4XCodePointSetData>, ICU4XError> {
+ Ok(Box::new(ICU4XCodePointSetData(call_constructor_unstable!(
+ sets::nfkc_inert [r => Ok(r.static_to_owned())],
+ sets::load_nfkc_inert,
+ provider
+ )?)))
+ }
+
+ #[diplomat::rust_link(icu::properties::sets::nfkd_inert, Fn)]
+ #[diplomat::rust_link(icu::properties::sets::load_nfkd_inert, Fn, hidden)]
+ pub fn load_nfkd_inert(
+ provider: &ICU4XDataProvider,
+ ) -> Result<Box<ICU4XCodePointSetData>, ICU4XError> {
+ Ok(Box::new(ICU4XCodePointSetData(call_constructor_unstable!(
+ sets::nfkd_inert [r => Ok(r.static_to_owned())],
+ sets::load_nfkd_inert,
+ provider
+ )?)))
+ }
+
+ #[diplomat::rust_link(icu::properties::sets::pattern_syntax, Fn)]
+ #[diplomat::rust_link(icu::properties::sets::load_pattern_syntax, Fn, hidden)]
+ pub fn load_pattern_syntax(
+ provider: &ICU4XDataProvider,
+ ) -> Result<Box<ICU4XCodePointSetData>, ICU4XError> {
+ Ok(Box::new(ICU4XCodePointSetData(call_constructor_unstable!(
+ sets::pattern_syntax [r => Ok(r.static_to_owned())],
+ sets::load_pattern_syntax,
+ provider
+ )?)))
+ }
+
+ #[diplomat::rust_link(icu::properties::sets::pattern_white_space, Fn)]
+ #[diplomat::rust_link(icu::properties::sets::load_pattern_white_space, Fn, hidden)]
+ pub fn load_pattern_white_space(
+ provider: &ICU4XDataProvider,
+ ) -> Result<Box<ICU4XCodePointSetData>, ICU4XError> {
+ Ok(Box::new(ICU4XCodePointSetData(call_constructor_unstable!(
+ sets::pattern_white_space [r => Ok(r.static_to_owned())],
+ sets::load_pattern_white_space,
+ provider
+ )?)))
+ }
+
+ #[diplomat::rust_link(icu::properties::sets::prepended_concatenation_mark, Fn)]
+ #[diplomat::rust_link(icu::properties::sets::load_prepended_concatenation_mark, Fn, hidden)]
+ pub fn load_prepended_concatenation_mark(
+ provider: &ICU4XDataProvider,
+ ) -> Result<Box<ICU4XCodePointSetData>, ICU4XError> {
+ Ok(Box::new(ICU4XCodePointSetData(call_constructor_unstable!(
+ sets::prepended_concatenation_mark [r => Ok(r.static_to_owned())],
+ sets::load_prepended_concatenation_mark,
+ provider
+ )?)))
+ }
+
+ #[diplomat::rust_link(icu::properties::sets::print, Fn)]
+ #[diplomat::rust_link(icu::properties::sets::load_print, Fn, hidden)]
+ pub fn load_print(
+ provider: &ICU4XDataProvider,
+ ) -> Result<Box<ICU4XCodePointSetData>, ICU4XError> {
+ Ok(Box::new(ICU4XCodePointSetData(call_constructor_unstable!(
+ sets::print [r => Ok(r.static_to_owned())],
+ sets::load_print,
+ provider
+ )?)))
+ }
+
+ #[diplomat::rust_link(icu::properties::sets::quotation_mark, Fn)]
+ #[diplomat::rust_link(icu::properties::sets::load_quotation_mark, Fn, hidden)]
+ pub fn load_quotation_mark(
+ provider: &ICU4XDataProvider,
+ ) -> Result<Box<ICU4XCodePointSetData>, ICU4XError> {
+ Ok(Box::new(ICU4XCodePointSetData(call_constructor_unstable!(
+ sets::quotation_mark [r => Ok(r.static_to_owned())],
+ sets::load_quotation_mark,
+ provider
+ )?)))
+ }
+
+ #[diplomat::rust_link(icu::properties::sets::radical, Fn)]
+ #[diplomat::rust_link(icu::properties::sets::load_radical, Fn, hidden)]
+ pub fn load_radical(
+ provider: &ICU4XDataProvider,
+ ) -> Result<Box<ICU4XCodePointSetData>, ICU4XError> {
+ Ok(Box::new(ICU4XCodePointSetData(call_constructor_unstable!(
+ sets::radical [r => Ok(r.static_to_owned())],
+ sets::load_radical,
+ provider
+ )?)))
+ }
+
+ #[diplomat::rust_link(icu::properties::sets::regional_indicator, Fn)]
+ #[diplomat::rust_link(icu::properties::sets::load_regional_indicator, Fn, hidden)]
+ pub fn load_regional_indicator(
+ provider: &ICU4XDataProvider,
+ ) -> Result<Box<ICU4XCodePointSetData>, ICU4XError> {
+ Ok(Box::new(ICU4XCodePointSetData(call_constructor_unstable!(
+ sets::regional_indicator [r => Ok(r.static_to_owned())],
+ sets::load_regional_indicator,
+ provider
+ )?)))
+ }
+
+ #[diplomat::rust_link(icu::properties::sets::soft_dotted, Fn)]
+ #[diplomat::rust_link(icu::properties::sets::load_soft_dotted, Fn, hidden)]
+ pub fn load_soft_dotted(
+ provider: &ICU4XDataProvider,
+ ) -> Result<Box<ICU4XCodePointSetData>, ICU4XError> {
+ Ok(Box::new(ICU4XCodePointSetData(call_constructor_unstable!(
+ sets::soft_dotted [r => Ok(r.static_to_owned())],
+ sets::load_soft_dotted,
+ provider
+ )?)))
+ }
+
+ #[diplomat::rust_link(icu::properties::sets::segment_starter, Fn)]
+ #[diplomat::rust_link(icu::properties::sets::load_segment_starter, Fn, hidden)]
+ pub fn load_segment_starter(
+ provider: &ICU4XDataProvider,
+ ) -> Result<Box<ICU4XCodePointSetData>, ICU4XError> {
+ Ok(Box::new(ICU4XCodePointSetData(call_constructor_unstable!(
+ sets::segment_starter [r => Ok(r.static_to_owned())],
+ sets::load_segment_starter,
+ provider
+ )?)))
+ }
+
+ #[diplomat::rust_link(icu::properties::sets::case_sensitive, Fn)]
+ #[diplomat::rust_link(icu::properties::sets::load_case_sensitive, Fn, hidden)]
+ pub fn load_case_sensitive(
+ provider: &ICU4XDataProvider,
+ ) -> Result<Box<ICU4XCodePointSetData>, ICU4XError> {
+ Ok(Box::new(ICU4XCodePointSetData(call_constructor_unstable!(
+ sets::case_sensitive [r => Ok(r.static_to_owned())],
+ sets::load_case_sensitive,
+ provider
+ )?)))
+ }
+
+ #[diplomat::rust_link(icu::properties::sets::sentence_terminal, Fn)]
+ #[diplomat::rust_link(icu::properties::sets::load_sentence_terminal, Fn, hidden)]
+ pub fn load_sentence_terminal(
+ provider: &ICU4XDataProvider,
+ ) -> Result<Box<ICU4XCodePointSetData>, ICU4XError> {
+ Ok(Box::new(ICU4XCodePointSetData(call_constructor_unstable!(
+ sets::sentence_terminal [r => Ok(r.static_to_owned())],
+ sets::load_sentence_terminal,
+ provider
+ )?)))
+ }
+
+ #[diplomat::rust_link(icu::properties::sets::terminal_punctuation, Fn)]
+ #[diplomat::rust_link(icu::properties::sets::load_terminal_punctuation, Fn, hidden)]
+ pub fn load_terminal_punctuation(
+ provider: &ICU4XDataProvider,
+ ) -> Result<Box<ICU4XCodePointSetData>, ICU4XError> {
+ Ok(Box::new(ICU4XCodePointSetData(call_constructor_unstable!(
+ sets::terminal_punctuation [r => Ok(r.static_to_owned())],
+ sets::load_terminal_punctuation,
+ provider
+ )?)))
+ }
+
+ #[diplomat::rust_link(icu::properties::sets::unified_ideograph, Fn)]
+ #[diplomat::rust_link(icu::properties::sets::load_unified_ideograph, Fn, hidden)]
+ pub fn load_unified_ideograph(
+ provider: &ICU4XDataProvider,
+ ) -> Result<Box<ICU4XCodePointSetData>, ICU4XError> {
+ Ok(Box::new(ICU4XCodePointSetData(call_constructor_unstable!(
+ sets::unified_ideograph [r => Ok(r.static_to_owned())],
+ sets::load_unified_ideograph,
+ provider
+ )?)))
+ }
+
+ #[diplomat::rust_link(icu::properties::sets::uppercase, Fn)]
+ #[diplomat::rust_link(icu::properties::sets::load_uppercase, Fn, hidden)]
+ pub fn load_uppercase(
+ provider: &ICU4XDataProvider,
+ ) -> Result<Box<ICU4XCodePointSetData>, ICU4XError> {
+ Ok(Box::new(ICU4XCodePointSetData(call_constructor_unstable!(
+ sets::uppercase [r => Ok(r.static_to_owned())],
+ sets::load_uppercase,
+ provider
+ )?)))
+ }
+
+ #[diplomat::rust_link(icu::properties::sets::variation_selector, Fn)]
+ #[diplomat::rust_link(icu::properties::sets::load_variation_selector, Fn, hidden)]
+ pub fn load_variation_selector(
+ provider: &ICU4XDataProvider,
+ ) -> Result<Box<ICU4XCodePointSetData>, ICU4XError> {
+ Ok(Box::new(ICU4XCodePointSetData(call_constructor_unstable!(
+ sets::variation_selector [r => Ok(r.static_to_owned())],
+ sets::load_variation_selector,
+ provider
+ )?)))
+ }
+
+ #[diplomat::rust_link(icu::properties::sets::white_space, Fn)]
+ #[diplomat::rust_link(icu::properties::sets::load_white_space, Fn, hidden)]
+ pub fn load_white_space(
+ provider: &ICU4XDataProvider,
+ ) -> Result<Box<ICU4XCodePointSetData>, ICU4XError> {
+ Ok(Box::new(ICU4XCodePointSetData(call_constructor_unstable!(
+ sets::white_space [r => Ok(r.static_to_owned())],
+ sets::load_white_space,
+ provider
+ )?)))
+ }
+
+ #[diplomat::rust_link(icu::properties::sets::xdigit, Fn)]
+ #[diplomat::rust_link(icu::properties::sets::load_xdigit, Fn, hidden)]
+ pub fn load_xdigit(
+ provider: &ICU4XDataProvider,
+ ) -> Result<Box<ICU4XCodePointSetData>, ICU4XError> {
+ Ok(Box::new(ICU4XCodePointSetData(call_constructor_unstable!(
+ sets::xdigit [r => Ok(r.static_to_owned())],
+ sets::load_xdigit,
+ provider
+ )?)))
+ }
+
+ #[diplomat::rust_link(icu::properties::sets::xid_continue, Fn)]
+ #[diplomat::rust_link(icu::properties::sets::load_xid_continue, Fn, hidden)]
+ pub fn load_xid_continue(
+ provider: &ICU4XDataProvider,
+ ) -> Result<Box<ICU4XCodePointSetData>, ICU4XError> {
+ Ok(Box::new(ICU4XCodePointSetData(call_constructor_unstable!(
+ sets::xid_continue [r => Ok(r.static_to_owned())],
+ sets::load_xid_continue,
+ provider
+ )?)))
+ }
+
+ #[diplomat::rust_link(icu::properties::sets::xid_start, Fn)]
+ #[diplomat::rust_link(icu::properties::sets::load_xid_start, Fn, hidden)]
+ pub fn load_xid_start(
+ provider: &ICU4XDataProvider,
+ ) -> Result<Box<ICU4XCodePointSetData>, ICU4XError> {
+ Ok(Box::new(ICU4XCodePointSetData(call_constructor_unstable!(
+ sets::xid_start [r => Ok(r.static_to_owned())],
+ sets::load_xid_start,
+ provider
+ )?)))
+ }
+
+ /// Loads data for a property specified as a string as long as it is one of the
+ /// [ECMA-262 binary properties][ecma] (not including Any, ASCII, and Assigned pseudoproperties).
+ ///
+ /// Returns `ICU4XError::PropertyUnexpectedPropertyNameError` in case the string does not
+ /// match any property in the list
+ ///
+ /// [ecma]: https://tc39.es/ecma262/#table-binary-unicode-properties
+ #[diplomat::rust_link(icu::properties::sets::for_ecma262, Fn)]
+ #[diplomat::rust_link(icu::properties::sets::load_for_ecma262, Fn, hidden)]
+ pub fn load_for_ecma262(
+ provider: &ICU4XDataProvider,
+ property_name: &str,
+ ) -> Result<Box<ICU4XCodePointSetData>, ICU4XError> {
+ let name = property_name.as_bytes(); // #2520
+ let name = if let Ok(s) = str::from_utf8(name) {
+ s
+ } else {
+ return Err(ICU4XError::TinyStrNonAsciiError);
+ };
+ Ok(Box::new(ICU4XCodePointSetData(call_constructor_unstable!(
+ sets::load_for_ecma262 [r => r.map(|r| r.static_to_owned())],
+ sets::load_for_ecma262_unstable,
+ provider,
+ name
+ )?)))
+ }
+ }
+}