1 // This file is part of ICU4X. For terms of use, please see the file
2 // called LICENSE at the top level of the ICU4X source tree
3 // (online at: https://github.com/unicode-org/icu4x/blob/main/LICENSE ).
7 use crate::provider::ffi::ICU4XDataProvider;
10 use icu_properties::sets;
12 use crate::errors::ffi::ICU4XError;
13 use crate::properties_iter::ffi::CodePointRangeIterator;
16 /// An ICU4X Unicode Set Property object, capable of querying whether a code point is contained in a set based on a Unicode property.
17 #[diplomat::rust_link(icu::properties, Mod)]
18 #[diplomat::rust_link(icu::properties::sets::CodePointSetData, Struct)]
19 #[diplomat::rust_link(icu::properties::sets::CodePointSetData::from_data, FnInStruct, hidden)]
20 #[diplomat::rust_link(icu::properties::sets::CodePointSetDataBorrowed, Struct)]
21 pub struct ICU4XCodePointSetData(pub sets::CodePointSetData);
23 impl ICU4XCodePointSetData {
24 /// Checks whether the code point is in the set.
25 #[diplomat::rust_link(
26 icu::properties::sets::CodePointSetDataBorrowed::contains,
29 pub fn contains(&self, cp: DiplomatChar) -> bool {
30 self.0.as_borrowed().contains32(cp)
32 /// Checks whether the code point (specified as a 32 bit integer, in UTF-32) is in the set.
33 #[diplomat::rust_link(
34 icu::properties::sets::CodePointSetDataBorrowed::contains32,
38 #[diplomat::attr(dart, disable)]
39 pub fn contains32(&self, cp: u32) -> bool {
43 /// Produces an iterator over ranges of code points contained in this set
44 #[diplomat::rust_link(
45 icu::properties::sets::CodePointSetDataBorrowed::iter_ranges,
48 pub fn iter_ranges<'a>(&'a self) -> Box<CodePointRangeIterator<'a>> {
49 Box::new(CodePointRangeIterator(Box::new(
50 self.0.as_borrowed().iter_ranges(),
54 /// Produces an iterator over ranges of code points not contained in this set
55 #[diplomat::rust_link(
56 icu::properties::sets::CodePointSetDataBorrowed::iter_ranges_complemented,
59 pub fn iter_ranges_complemented<'a>(&'a self) -> Box<CodePointRangeIterator<'a>> {
60 Box::new(CodePointRangeIterator(Box::new(
61 self.0.as_borrowed().iter_ranges_complemented(),
65 /// which is a mask with the same format as the `U_GC_XX_MASK` mask in ICU4C
66 #[diplomat::rust_link(icu::properties::sets::for_general_category_group, Fn)]
67 #[diplomat::rust_link(icu::properties::sets::load_for_general_category_group, Fn, hidden)]
68 #[diplomat::attr(all(supports = constructors, supports = fallible_constructors, supports = named_constructors), named_constructor = "for_general_category_group")]
69 pub fn load_for_general_category_group(
70 provider: &ICU4XDataProvider,
72 ) -> Result<Box<ICU4XCodePointSetData>, ICU4XError> {
73 Ok(Box::new(ICU4XCodePointSetData(call_constructor_unstable!(
74 sets::for_general_category_group [r => Ok(r)],
75 sets::load_for_general_category_group,
81 #[diplomat::rust_link(icu::properties::sets::ascii_hex_digit, Fn)]
82 #[diplomat::rust_link(icu::properties::sets::load_ascii_hex_digit, Fn, hidden)]
83 #[diplomat::attr(all(supports = constructors, supports = fallible_constructors, supports = named_constructors), named_constructor = "ascii_hex_digit")]
84 pub fn load_ascii_hex_digit(
85 provider: &ICU4XDataProvider,
86 ) -> Result<Box<ICU4XCodePointSetData>, ICU4XError> {
87 Ok(Box::new(ICU4XCodePointSetData(call_constructor_unstable!(
88 sets::ascii_hex_digit [r => Ok(r.static_to_owned())],
89 sets::load_ascii_hex_digit,
94 #[diplomat::rust_link(icu::properties::sets::alnum, Fn)]
95 #[diplomat::rust_link(icu::properties::sets::load_alnum, Fn, hidden)]
96 #[diplomat::attr(all(supports = constructors, supports = fallible_constructors, supports = named_constructors), named_constructor = "alnum")]
98 provider: &ICU4XDataProvider,
99 ) -> Result<Box<ICU4XCodePointSetData>, ICU4XError> {
100 Ok(Box::new(ICU4XCodePointSetData(call_constructor_unstable!(
101 sets::alnum [r => Ok(r.static_to_owned())],
107 #[diplomat::rust_link(icu::properties::sets::alphabetic, Fn)]
108 #[diplomat::rust_link(icu::properties::sets::load_alphabetic, Fn, hidden)]
109 #[diplomat::attr(all(supports = constructors, supports = fallible_constructors, supports = named_constructors), named_constructor = "alphabetic")]
110 pub fn load_alphabetic(
111 provider: &ICU4XDataProvider,
112 ) -> Result<Box<ICU4XCodePointSetData>, ICU4XError> {
113 Ok(Box::new(ICU4XCodePointSetData(call_constructor_unstable!(
114 sets::alphabetic [r => Ok(r.static_to_owned())],
115 sets::load_alphabetic,
120 #[diplomat::rust_link(icu::properties::sets::bidi_control, Fn)]
121 #[diplomat::rust_link(icu::properties::sets::load_bidi_control, Fn, hidden)]
122 #[diplomat::attr(all(supports = constructors, supports = fallible_constructors, supports = named_constructors), named_constructor = "bidi_control")]
123 pub fn load_bidi_control(
124 provider: &ICU4XDataProvider,
125 ) -> Result<Box<ICU4XCodePointSetData>, ICU4XError> {
126 Ok(Box::new(ICU4XCodePointSetData(call_constructor_unstable!(
127 sets::bidi_control [r => Ok(r.static_to_owned())],
128 sets::load_bidi_control,
133 #[diplomat::rust_link(icu::properties::sets::bidi_mirrored, Fn)]
134 #[diplomat::rust_link(icu::properties::sets::load_bidi_mirrored, Fn, hidden)]
135 #[diplomat::attr(all(supports = constructors, supports = fallible_constructors, supports = named_constructors), named_constructor = "bidi_mirrored")]
136 pub fn load_bidi_mirrored(
137 provider: &ICU4XDataProvider,
138 ) -> Result<Box<ICU4XCodePointSetData>, ICU4XError> {
139 Ok(Box::new(ICU4XCodePointSetData(call_constructor_unstable!(
140 sets::bidi_mirrored [r => Ok(r.static_to_owned())],
141 sets::load_bidi_mirrored,
146 #[diplomat::rust_link(icu::properties::sets::blank, Fn)]
147 #[diplomat::rust_link(icu::properties::sets::load_blank, Fn, hidden)]
148 #[diplomat::attr(all(supports = constructors, supports = fallible_constructors, supports = named_constructors), named_constructor = "blank")]
150 provider: &ICU4XDataProvider,
151 ) -> Result<Box<ICU4XCodePointSetData>, ICU4XError> {
152 Ok(Box::new(ICU4XCodePointSetData(call_constructor_unstable!(
153 sets::blank [r => Ok(r.static_to_owned())],
159 #[diplomat::rust_link(icu::properties::sets::cased, Fn)]
160 #[diplomat::rust_link(icu::properties::sets::load_cased, Fn, hidden)]
161 #[diplomat::attr(all(supports = constructors, supports = fallible_constructors, supports = named_constructors), named_constructor = "cased")]
163 provider: &ICU4XDataProvider,
164 ) -> Result<Box<ICU4XCodePointSetData>, ICU4XError> {
165 Ok(Box::new(ICU4XCodePointSetData(call_constructor_unstable!(
166 sets::cased [r => Ok(r.static_to_owned())],
172 #[diplomat::rust_link(icu::properties::sets::case_ignorable, Fn)]
173 #[diplomat::rust_link(icu::properties::sets::load_case_ignorable, Fn, hidden)]
174 #[diplomat::attr(all(supports = constructors, supports = fallible_constructors, supports = named_constructors), named_constructor = "case_ignorable")]
175 pub fn load_case_ignorable(
176 provider: &ICU4XDataProvider,
177 ) -> Result<Box<ICU4XCodePointSetData>, ICU4XError> {
178 Ok(Box::new(ICU4XCodePointSetData(call_constructor_unstable!(
179 sets::case_ignorable [r => Ok(r.static_to_owned())],
180 sets::load_case_ignorable,
185 #[diplomat::rust_link(icu::properties::sets::full_composition_exclusion, Fn)]
186 #[diplomat::rust_link(icu::properties::sets::load_full_composition_exclusion, Fn, hidden)]
187 #[diplomat::attr(all(supports = constructors, supports = fallible_constructors, supports = named_constructors), named_constructor = "full_composition_exclusion")]
188 pub fn load_full_composition_exclusion(
189 provider: &ICU4XDataProvider,
190 ) -> Result<Box<ICU4XCodePointSetData>, ICU4XError> {
191 Ok(Box::new(ICU4XCodePointSetData(call_constructor_unstable!(
192 sets::full_composition_exclusion [r => Ok(r.static_to_owned())],
193 sets::load_full_composition_exclusion,
198 #[diplomat::rust_link(icu::properties::sets::changes_when_casefolded, Fn)]
199 #[diplomat::rust_link(icu::properties::sets::load_changes_when_casefolded, Fn, hidden)]
200 #[diplomat::attr(all(supports = constructors, supports = fallible_constructors, supports = named_constructors), named_constructor = "changes_when_casefolded")]
201 pub fn load_changes_when_casefolded(
202 provider: &ICU4XDataProvider,
203 ) -> Result<Box<ICU4XCodePointSetData>, ICU4XError> {
204 Ok(Box::new(ICU4XCodePointSetData(call_constructor_unstable!(
205 sets::changes_when_casefolded [r => Ok(r.static_to_owned())],
206 sets::load_changes_when_casefolded,
211 #[diplomat::rust_link(icu::properties::sets::changes_when_casemapped, Fn)]
212 #[diplomat::rust_link(icu::properties::sets::load_changes_when_casemapped, Fn, hidden)]
213 #[diplomat::attr(all(supports = constructors, supports = fallible_constructors, supports = named_constructors), named_constructor = "changes_when_casemapped")]
214 pub fn load_changes_when_casemapped(
215 provider: &ICU4XDataProvider,
216 ) -> Result<Box<ICU4XCodePointSetData>, ICU4XError> {
217 Ok(Box::new(ICU4XCodePointSetData(call_constructor_unstable!(
218 sets::changes_when_casemapped [r => Ok(r.static_to_owned())],
219 sets::load_changes_when_casemapped,
224 #[diplomat::rust_link(icu::properties::sets::changes_when_nfkc_casefolded, Fn)]
225 #[diplomat::rust_link(icu::properties::sets::load_changes_when_nfkc_casefolded, Fn, hidden)]
226 #[diplomat::attr(all(supports = constructors, supports = fallible_constructors, supports = named_constructors), named_constructor = "changes_when_nfkc_casefolded")]
227 pub fn load_changes_when_nfkc_casefolded(
228 provider: &ICU4XDataProvider,
229 ) -> Result<Box<ICU4XCodePointSetData>, ICU4XError> {
230 Ok(Box::new(ICU4XCodePointSetData(call_constructor_unstable!(
231 sets::changes_when_nfkc_casefolded [r => Ok(r.static_to_owned())],
232 sets::load_changes_when_nfkc_casefolded,
237 #[diplomat::rust_link(icu::properties::sets::changes_when_lowercased, Fn)]
238 #[diplomat::rust_link(icu::properties::sets::load_changes_when_lowercased, Fn, hidden)]
239 #[diplomat::attr(all(supports = constructors, supports = fallible_constructors, supports = named_constructors), named_constructor = "changes_when_lowercased")]
240 pub fn load_changes_when_lowercased(
241 provider: &ICU4XDataProvider,
242 ) -> Result<Box<ICU4XCodePointSetData>, ICU4XError> {
243 Ok(Box::new(ICU4XCodePointSetData(call_constructor_unstable!(
244 sets::changes_when_lowercased [r => Ok(r.static_to_owned())],
245 sets::load_changes_when_lowercased,
250 #[diplomat::rust_link(icu::properties::sets::changes_when_titlecased, Fn)]
251 #[diplomat::rust_link(icu::properties::sets::load_changes_when_titlecased, Fn, hidden)]
252 #[diplomat::attr(all(supports = constructors, supports = fallible_constructors, supports = named_constructors), named_constructor = "changes_when_titlecased")]
253 pub fn load_changes_when_titlecased(
254 provider: &ICU4XDataProvider,
255 ) -> Result<Box<ICU4XCodePointSetData>, ICU4XError> {
256 Ok(Box::new(ICU4XCodePointSetData(call_constructor_unstable!(
257 sets::changes_when_titlecased [r => Ok(r.static_to_owned())],
258 sets::load_changes_when_titlecased,
263 #[diplomat::rust_link(icu::properties::sets::changes_when_uppercased, Fn)]
264 #[diplomat::rust_link(icu::properties::sets::load_changes_when_uppercased, Fn, hidden)]
265 #[diplomat::attr(all(supports = constructors, supports = fallible_constructors, supports = named_constructors), named_constructor = "changes_when_uppercased")]
266 pub fn load_changes_when_uppercased(
267 provider: &ICU4XDataProvider,
268 ) -> Result<Box<ICU4XCodePointSetData>, ICU4XError> {
269 Ok(Box::new(ICU4XCodePointSetData(call_constructor_unstable!(
270 sets::changes_when_uppercased [r => Ok(r.static_to_owned())],
271 sets::load_changes_when_uppercased,
276 #[diplomat::rust_link(icu::properties::sets::dash, Fn)]
277 #[diplomat::rust_link(icu::properties::sets::load_dash, Fn, hidden)]
278 #[diplomat::attr(all(supports = constructors, supports = fallible_constructors, supports = named_constructors), named_constructor = "dash")]
280 provider: &ICU4XDataProvider,
281 ) -> Result<Box<ICU4XCodePointSetData>, ICU4XError> {
282 Ok(Box::new(ICU4XCodePointSetData(call_constructor_unstable!(
283 sets::dash [r => Ok(r.static_to_owned())],
289 #[diplomat::rust_link(icu::properties::sets::deprecated, Fn)]
290 #[diplomat::rust_link(icu::properties::sets::load_deprecated, Fn, hidden)]
291 #[diplomat::attr(all(supports = constructors, supports = fallible_constructors, supports = named_constructors), named_constructor = "deprecated")]
292 pub fn load_deprecated(
293 provider: &ICU4XDataProvider,
294 ) -> Result<Box<ICU4XCodePointSetData>, ICU4XError> {
295 Ok(Box::new(ICU4XCodePointSetData(call_constructor_unstable!(
296 sets::deprecated [r => Ok(r.static_to_owned())],
297 sets::load_deprecated,
302 #[diplomat::rust_link(icu::properties::sets::default_ignorable_code_point, Fn)]
303 #[diplomat::rust_link(icu::properties::sets::load_default_ignorable_code_point, Fn, hidden)]
304 #[diplomat::attr(all(supports = constructors, supports = fallible_constructors, supports = named_constructors), named_constructor = "default_ignorable_code_point")]
305 pub fn load_default_ignorable_code_point(
306 provider: &ICU4XDataProvider,
307 ) -> Result<Box<ICU4XCodePointSetData>, ICU4XError> {
308 Ok(Box::new(ICU4XCodePointSetData(call_constructor_unstable!(
309 sets::default_ignorable_code_point [r => Ok(r.static_to_owned())],
310 sets::load_default_ignorable_code_point,
315 #[diplomat::rust_link(icu::properties::sets::diacritic, Fn)]
316 #[diplomat::rust_link(icu::properties::sets::load_diacritic, Fn, hidden)]
317 #[diplomat::attr(all(supports = constructors, supports = fallible_constructors, supports = named_constructors), named_constructor = "diacritic")]
318 pub fn load_diacritic(
319 provider: &ICU4XDataProvider,
320 ) -> Result<Box<ICU4XCodePointSetData>, ICU4XError> {
321 Ok(Box::new(ICU4XCodePointSetData(call_constructor_unstable!(
322 sets::diacritic [r => Ok(r.static_to_owned())],
323 sets::load_diacritic,
328 #[diplomat::rust_link(icu::properties::sets::emoji_modifier_base, Fn)]
329 #[diplomat::rust_link(icu::properties::sets::load_emoji_modifier_base, Fn, hidden)]
330 #[diplomat::attr(all(supports = constructors, supports = fallible_constructors, supports = named_constructors), named_constructor = "emoji_modifier_base")]
331 pub fn load_emoji_modifier_base(
332 provider: &ICU4XDataProvider,
333 ) -> Result<Box<ICU4XCodePointSetData>, ICU4XError> {
334 Ok(Box::new(ICU4XCodePointSetData(call_constructor_unstable!(
335 sets::emoji_modifier_base [r => Ok(r.static_to_owned())],
336 sets::load_emoji_modifier_base,
341 #[diplomat::rust_link(icu::properties::sets::emoji_component, Fn)]
342 #[diplomat::rust_link(icu::properties::sets::load_emoji_component, Fn, hidden)]
343 #[diplomat::attr(all(supports = constructors, supports = fallible_constructors, supports = named_constructors), named_constructor = "emoji_component")]
344 pub fn load_emoji_component(
345 provider: &ICU4XDataProvider,
346 ) -> Result<Box<ICU4XCodePointSetData>, ICU4XError> {
347 Ok(Box::new(ICU4XCodePointSetData(call_constructor_unstable!(
348 sets::emoji_component [r => Ok(r.static_to_owned())],
349 sets::load_emoji_component,
354 #[diplomat::rust_link(icu::properties::sets::emoji_modifier, Fn)]
355 #[diplomat::rust_link(icu::properties::sets::load_emoji_modifier, Fn, hidden)]
356 #[diplomat::attr(all(supports = constructors, supports = fallible_constructors, supports = named_constructors), named_constructor = "emoji_modifier")]
357 pub fn load_emoji_modifier(
358 provider: &ICU4XDataProvider,
359 ) -> Result<Box<ICU4XCodePointSetData>, ICU4XError> {
360 Ok(Box::new(ICU4XCodePointSetData(call_constructor_unstable!(
361 sets::emoji_modifier [r => Ok(r.static_to_owned())],
362 sets::load_emoji_modifier,
367 #[diplomat::rust_link(icu::properties::sets::emoji, Fn)]
368 #[diplomat::rust_link(icu::properties::sets::load_emoji, Fn, hidden)]
369 #[diplomat::attr(all(supports = constructors, supports = fallible_constructors, supports = named_constructors), named_constructor = "emoji")]
371 provider: &ICU4XDataProvider,
372 ) -> Result<Box<ICU4XCodePointSetData>, ICU4XError> {
373 Ok(Box::new(ICU4XCodePointSetData(call_constructor_unstable!(
374 sets::emoji [r => Ok(r.static_to_owned())],
380 #[diplomat::rust_link(icu::properties::sets::emoji_presentation, Fn)]
381 #[diplomat::rust_link(icu::properties::sets::load_emoji_presentation, Fn, hidden)]
382 #[diplomat::attr(all(supports = constructors, supports = fallible_constructors, supports = named_constructors), named_constructor = "emoji_presentation")]
383 pub fn load_emoji_presentation(
384 provider: &ICU4XDataProvider,
385 ) -> Result<Box<ICU4XCodePointSetData>, ICU4XError> {
386 Ok(Box::new(ICU4XCodePointSetData(call_constructor_unstable!(
387 sets::emoji_presentation [r => Ok(r.static_to_owned())],
388 sets::load_emoji_presentation,
393 #[diplomat::rust_link(icu::properties::sets::extender, Fn)]
394 #[diplomat::rust_link(icu::properties::sets::load_extender, Fn, hidden)]
395 #[diplomat::attr(all(supports = constructors, supports = fallible_constructors, supports = named_constructors), named_constructor = "extender")]
396 pub fn load_extender(
397 provider: &ICU4XDataProvider,
398 ) -> Result<Box<ICU4XCodePointSetData>, ICU4XError> {
399 Ok(Box::new(ICU4XCodePointSetData(call_constructor_unstable!(
400 sets::extender [r => Ok(r.static_to_owned())],
406 #[diplomat::rust_link(icu::properties::sets::extended_pictographic, Fn)]
407 #[diplomat::rust_link(icu::properties::sets::load_extended_pictographic, Fn, hidden)]
408 #[diplomat::attr(all(supports = constructors, supports = fallible_constructors, supports = named_constructors), named_constructor = "extended_pictographic")]
409 pub fn load_extended_pictographic(
410 provider: &ICU4XDataProvider,
411 ) -> Result<Box<ICU4XCodePointSetData>, ICU4XError> {
412 Ok(Box::new(ICU4XCodePointSetData(call_constructor_unstable!(
413 sets::extended_pictographic [r => Ok(r.static_to_owned())],
414 sets::load_extended_pictographic,
419 #[diplomat::rust_link(icu::properties::sets::graph, Fn)]
420 #[diplomat::rust_link(icu::properties::sets::load_graph, Fn, hidden)]
421 #[diplomat::attr(all(supports = constructors, supports = fallible_constructors, supports = named_constructors), named_constructor = "graph")]
423 provider: &ICU4XDataProvider,
424 ) -> Result<Box<ICU4XCodePointSetData>, ICU4XError> {
425 Ok(Box::new(ICU4XCodePointSetData(call_constructor_unstable!(
426 sets::graph [r => Ok(r.static_to_owned())],
432 #[diplomat::rust_link(icu::properties::sets::grapheme_base, Fn)]
433 #[diplomat::rust_link(icu::properties::sets::load_grapheme_base, Fn, hidden)]
434 #[diplomat::attr(all(supports = constructors, supports = fallible_constructors, supports = named_constructors), named_constructor = "grapheme_base")]
435 pub fn load_grapheme_base(
436 provider: &ICU4XDataProvider,
437 ) -> Result<Box<ICU4XCodePointSetData>, ICU4XError> {
438 Ok(Box::new(ICU4XCodePointSetData(call_constructor_unstable!(
439 sets::grapheme_base [r => Ok(r.static_to_owned())],
440 sets::load_grapheme_base,
445 #[diplomat::rust_link(icu::properties::sets::grapheme_extend, Fn)]
446 #[diplomat::rust_link(icu::properties::sets::load_grapheme_extend, Fn, hidden)]
447 #[diplomat::attr(all(supports = constructors, supports = fallible_constructors, supports = named_constructors), named_constructor = "grapheme_extend")]
448 pub fn load_grapheme_extend(
449 provider: &ICU4XDataProvider,
450 ) -> Result<Box<ICU4XCodePointSetData>, ICU4XError> {
451 Ok(Box::new(ICU4XCodePointSetData(call_constructor_unstable!(
452 sets::grapheme_extend [r => Ok(r.static_to_owned())],
453 sets::load_grapheme_extend,
458 #[diplomat::rust_link(icu::properties::sets::grapheme_link, Fn)]
459 #[diplomat::rust_link(icu::properties::sets::load_grapheme_link, Fn, hidden)]
460 #[diplomat::attr(all(supports = constructors, supports = fallible_constructors, supports = named_constructors), named_constructor = "grapheme_link")]
461 pub fn load_grapheme_link(
462 provider: &ICU4XDataProvider,
463 ) -> Result<Box<ICU4XCodePointSetData>, ICU4XError> {
464 Ok(Box::new(ICU4XCodePointSetData(call_constructor_unstable!(
465 sets::grapheme_link [r => Ok(r.static_to_owned())],
466 sets::load_grapheme_link,
471 #[diplomat::rust_link(icu::properties::sets::hex_digit, Fn)]
472 #[diplomat::rust_link(icu::properties::sets::load_hex_digit, Fn, hidden)]
473 #[diplomat::attr(all(supports = constructors, supports = fallible_constructors, supports = named_constructors), named_constructor = "hex_digit")]
474 pub fn load_hex_digit(
475 provider: &ICU4XDataProvider,
476 ) -> Result<Box<ICU4XCodePointSetData>, ICU4XError> {
477 Ok(Box::new(ICU4XCodePointSetData(call_constructor_unstable!(
478 sets::hex_digit [r => Ok(r.static_to_owned())],
479 sets::load_hex_digit,
484 #[diplomat::rust_link(icu::properties::sets::hyphen, Fn)]
485 #[diplomat::rust_link(icu::properties::sets::load_hyphen, Fn, hidden)]
486 #[diplomat::attr(all(supports = constructors, supports = fallible_constructors, supports = named_constructors), named_constructor = "hyphen")]
488 provider: &ICU4XDataProvider,
489 ) -> Result<Box<ICU4XCodePointSetData>, ICU4XError> {
490 Ok(Box::new(ICU4XCodePointSetData(call_constructor_unstable!(
491 sets::hyphen [r => Ok(r.static_to_owned())],
497 #[diplomat::rust_link(icu::properties::sets::id_continue, Fn)]
498 #[diplomat::rust_link(icu::properties::sets::load_id_continue, Fn, hidden)]
499 #[diplomat::attr(all(supports = constructors, supports = fallible_constructors, supports = named_constructors), named_constructor = "id_continue")]
500 pub fn load_id_continue(
501 provider: &ICU4XDataProvider,
502 ) -> Result<Box<ICU4XCodePointSetData>, ICU4XError> {
503 Ok(Box::new(ICU4XCodePointSetData(call_constructor_unstable!(
504 sets::id_continue [r => Ok(r.static_to_owned())],
505 sets::load_id_continue,
510 #[diplomat::rust_link(icu::properties::sets::ideographic, Fn)]
511 #[diplomat::rust_link(icu::properties::sets::load_ideographic, Fn, hidden)]
512 #[diplomat::attr(all(supports = constructors, supports = fallible_constructors, supports = named_constructors), named_constructor = "ideographic")]
513 pub fn load_ideographic(
514 provider: &ICU4XDataProvider,
515 ) -> Result<Box<ICU4XCodePointSetData>, ICU4XError> {
516 Ok(Box::new(ICU4XCodePointSetData(call_constructor_unstable!(
517 sets::ideographic [r => Ok(r.static_to_owned())],
518 sets::load_ideographic,
523 #[diplomat::rust_link(icu::properties::sets::id_start, Fn)]
524 #[diplomat::rust_link(icu::properties::sets::load_id_start, Fn, hidden)]
525 #[diplomat::attr(all(supports = constructors, supports = fallible_constructors, supports = named_constructors), named_constructor = "id_start")]
526 pub fn load_id_start(
527 provider: &ICU4XDataProvider,
528 ) -> Result<Box<ICU4XCodePointSetData>, ICU4XError> {
529 Ok(Box::new(ICU4XCodePointSetData(call_constructor_unstable!(
530 sets::id_start [r => Ok(r.static_to_owned())],
536 #[diplomat::rust_link(icu::properties::sets::ids_binary_operator, Fn)]
537 #[diplomat::rust_link(icu::properties::sets::load_ids_binary_operator, Fn, hidden)]
538 #[diplomat::attr(all(supports = constructors, supports = fallible_constructors, supports = named_constructors), named_constructor = "ids_binary_operator")]
539 pub fn load_ids_binary_operator(
540 provider: &ICU4XDataProvider,
541 ) -> Result<Box<ICU4XCodePointSetData>, ICU4XError> {
542 Ok(Box::new(ICU4XCodePointSetData(call_constructor_unstable!(
543 sets::ids_binary_operator [r => Ok(r.static_to_owned())],
544 sets::load_ids_binary_operator,
549 #[diplomat::rust_link(icu::properties::sets::ids_trinary_operator, Fn)]
550 #[diplomat::rust_link(icu::properties::sets::load_ids_trinary_operator, Fn, hidden)]
551 #[diplomat::attr(all(supports = constructors, supports = fallible_constructors, supports = named_constructors), named_constructor = "ids_trinary_operator")]
552 pub fn load_ids_trinary_operator(
553 provider: &ICU4XDataProvider,
554 ) -> Result<Box<ICU4XCodePointSetData>, ICU4XError> {
555 Ok(Box::new(ICU4XCodePointSetData(call_constructor_unstable!(
556 sets::ids_trinary_operator [r => Ok(r.static_to_owned())],
557 sets::load_ids_trinary_operator,
562 #[diplomat::rust_link(icu::properties::sets::join_control, Fn)]
563 #[diplomat::rust_link(icu::properties::sets::load_join_control, Fn, hidden)]
564 #[diplomat::attr(all(supports = constructors, supports = fallible_constructors, supports = named_constructors), named_constructor = "join_control")]
565 pub fn load_join_control(
566 provider: &ICU4XDataProvider,
567 ) -> Result<Box<ICU4XCodePointSetData>, ICU4XError> {
568 Ok(Box::new(ICU4XCodePointSetData(call_constructor_unstable!(
569 sets::join_control [r => Ok(r.static_to_owned())],
570 sets::load_join_control,
575 #[diplomat::rust_link(icu::properties::sets::logical_order_exception, Fn)]
576 #[diplomat::rust_link(icu::properties::sets::load_logical_order_exception, Fn, hidden)]
577 #[diplomat::attr(all(supports = constructors, supports = fallible_constructors, supports = named_constructors), named_constructor = "logical_order_exception")]
578 pub fn load_logical_order_exception(
579 provider: &ICU4XDataProvider,
580 ) -> Result<Box<ICU4XCodePointSetData>, ICU4XError> {
581 Ok(Box::new(ICU4XCodePointSetData(call_constructor_unstable!(
582 sets::logical_order_exception [r => Ok(r.static_to_owned())],
583 sets::load_logical_order_exception,
588 #[diplomat::rust_link(icu::properties::sets::lowercase, Fn)]
589 #[diplomat::rust_link(icu::properties::sets::load_lowercase, Fn, hidden)]
590 #[diplomat::attr(all(supports = constructors, supports = fallible_constructors, supports = named_constructors), named_constructor = "lowercase")]
591 pub fn load_lowercase(
592 provider: &ICU4XDataProvider,
593 ) -> Result<Box<ICU4XCodePointSetData>, ICU4XError> {
594 Ok(Box::new(ICU4XCodePointSetData(call_constructor_unstable!(
595 sets::lowercase [r => Ok(r.static_to_owned())],
596 sets::load_lowercase,
601 #[diplomat::rust_link(icu::properties::sets::math, Fn)]
602 #[diplomat::rust_link(icu::properties::sets::load_math, Fn, hidden)]
603 #[diplomat::attr(all(supports = constructors, supports = fallible_constructors, supports = named_constructors), named_constructor = "math")]
605 provider: &ICU4XDataProvider,
606 ) -> Result<Box<ICU4XCodePointSetData>, ICU4XError> {
607 Ok(Box::new(ICU4XCodePointSetData(call_constructor_unstable!(
608 sets::math [r => Ok(r.static_to_owned())],
614 #[diplomat::rust_link(icu::properties::sets::noncharacter_code_point, Fn)]
615 #[diplomat::rust_link(icu::properties::sets::load_noncharacter_code_point, Fn, hidden)]
616 #[diplomat::attr(all(supports = constructors, supports = fallible_constructors, supports = named_constructors), named_constructor = "noncharacter_code_point")]
617 pub fn load_noncharacter_code_point(
618 provider: &ICU4XDataProvider,
619 ) -> Result<Box<ICU4XCodePointSetData>, ICU4XError> {
620 Ok(Box::new(ICU4XCodePointSetData(call_constructor_unstable!(
621 sets::noncharacter_code_point [r => Ok(r.static_to_owned())],
622 sets::load_noncharacter_code_point,
627 #[diplomat::rust_link(icu::properties::sets::nfc_inert, Fn)]
628 #[diplomat::rust_link(icu::properties::sets::load_nfc_inert, Fn, hidden)]
629 #[diplomat::attr(all(supports = constructors, supports = fallible_constructors, supports = named_constructors), named_constructor = "nfc_inert")]
630 pub fn load_nfc_inert(
631 provider: &ICU4XDataProvider,
632 ) -> Result<Box<ICU4XCodePointSetData>, ICU4XError> {
633 Ok(Box::new(ICU4XCodePointSetData(call_constructor_unstable!(
634 sets::nfc_inert [r => Ok(r.static_to_owned())],
635 sets::load_nfc_inert,
640 #[diplomat::rust_link(icu::properties::sets::nfd_inert, Fn)]
641 #[diplomat::rust_link(icu::properties::sets::load_nfd_inert, Fn, hidden)]
642 #[diplomat::attr(all(supports = constructors, supports = fallible_constructors, supports = named_constructors), named_constructor = "nfd_inert")]
643 pub fn load_nfd_inert(
644 provider: &ICU4XDataProvider,
645 ) -> Result<Box<ICU4XCodePointSetData>, ICU4XError> {
646 Ok(Box::new(ICU4XCodePointSetData(call_constructor_unstable!(
647 sets::nfd_inert [r => Ok(r.static_to_owned())],
648 sets::load_nfd_inert,
653 #[diplomat::rust_link(icu::properties::sets::nfkc_inert, Fn)]
654 #[diplomat::rust_link(icu::properties::sets::load_nfkc_inert, Fn, hidden)]
655 #[diplomat::attr(all(supports = constructors, supports = fallible_constructors, supports = named_constructors), named_constructor = "nfkc_inert")]
656 pub fn load_nfkc_inert(
657 provider: &ICU4XDataProvider,
658 ) -> Result<Box<ICU4XCodePointSetData>, ICU4XError> {
659 Ok(Box::new(ICU4XCodePointSetData(call_constructor_unstable!(
660 sets::nfkc_inert [r => Ok(r.static_to_owned())],
661 sets::load_nfkc_inert,
666 #[diplomat::rust_link(icu::properties::sets::nfkd_inert, Fn)]
667 #[diplomat::rust_link(icu::properties::sets::load_nfkd_inert, Fn, hidden)]
668 #[diplomat::attr(all(supports = constructors, supports = fallible_constructors, supports = named_constructors), named_constructor = "nfkd_inert")]
669 pub fn load_nfkd_inert(
670 provider: &ICU4XDataProvider,
671 ) -> Result<Box<ICU4XCodePointSetData>, ICU4XError> {
672 Ok(Box::new(ICU4XCodePointSetData(call_constructor_unstable!(
673 sets::nfkd_inert [r => Ok(r.static_to_owned())],
674 sets::load_nfkd_inert,
679 #[diplomat::rust_link(icu::properties::sets::pattern_syntax, Fn)]
680 #[diplomat::rust_link(icu::properties::sets::load_pattern_syntax, Fn, hidden)]
681 #[diplomat::attr(all(supports = constructors, supports = fallible_constructors, supports = named_constructors), named_constructor = "pattern_syntax")]
682 pub fn load_pattern_syntax(
683 provider: &ICU4XDataProvider,
684 ) -> Result<Box<ICU4XCodePointSetData>, ICU4XError> {
685 Ok(Box::new(ICU4XCodePointSetData(call_constructor_unstable!(
686 sets::pattern_syntax [r => Ok(r.static_to_owned())],
687 sets::load_pattern_syntax,
692 #[diplomat::rust_link(icu::properties::sets::pattern_white_space, Fn)]
693 #[diplomat::rust_link(icu::properties::sets::load_pattern_white_space, Fn, hidden)]
694 #[diplomat::attr(all(supports = constructors, supports = fallible_constructors, supports = named_constructors), named_constructor = "pattern_white_space")]
695 pub fn load_pattern_white_space(
696 provider: &ICU4XDataProvider,
697 ) -> Result<Box<ICU4XCodePointSetData>, ICU4XError> {
698 Ok(Box::new(ICU4XCodePointSetData(call_constructor_unstable!(
699 sets::pattern_white_space [r => Ok(r.static_to_owned())],
700 sets::load_pattern_white_space,
705 #[diplomat::rust_link(icu::properties::sets::prepended_concatenation_mark, Fn)]
706 #[diplomat::rust_link(icu::properties::sets::load_prepended_concatenation_mark, Fn, hidden)]
707 #[diplomat::attr(all(supports = constructors, supports = fallible_constructors, supports = named_constructors), named_constructor = "prepended_concatenation_mark")]
708 pub fn load_prepended_concatenation_mark(
709 provider: &ICU4XDataProvider,
710 ) -> Result<Box<ICU4XCodePointSetData>, ICU4XError> {
711 Ok(Box::new(ICU4XCodePointSetData(call_constructor_unstable!(
712 sets::prepended_concatenation_mark [r => Ok(r.static_to_owned())],
713 sets::load_prepended_concatenation_mark,
718 #[diplomat::rust_link(icu::properties::sets::print, Fn)]
719 #[diplomat::rust_link(icu::properties::sets::load_print, Fn, hidden)]
720 #[diplomat::attr(all(supports = constructors, supports = fallible_constructors, supports = named_constructors), named_constructor = "print")]
722 provider: &ICU4XDataProvider,
723 ) -> Result<Box<ICU4XCodePointSetData>, ICU4XError> {
724 Ok(Box::new(ICU4XCodePointSetData(call_constructor_unstable!(
725 sets::print [r => Ok(r.static_to_owned())],
731 #[diplomat::rust_link(icu::properties::sets::quotation_mark, Fn)]
732 #[diplomat::rust_link(icu::properties::sets::load_quotation_mark, Fn, hidden)]
733 #[diplomat::attr(all(supports = constructors, supports = fallible_constructors, supports = named_constructors), named_constructor = "quotation_mark")]
734 pub fn load_quotation_mark(
735 provider: &ICU4XDataProvider,
736 ) -> Result<Box<ICU4XCodePointSetData>, ICU4XError> {
737 Ok(Box::new(ICU4XCodePointSetData(call_constructor_unstable!(
738 sets::quotation_mark [r => Ok(r.static_to_owned())],
739 sets::load_quotation_mark,
744 #[diplomat::rust_link(icu::properties::sets::radical, Fn)]
745 #[diplomat::rust_link(icu::properties::sets::load_radical, Fn, hidden)]
746 #[diplomat::attr(all(supports = constructors, supports = fallible_constructors, supports = named_constructors), named_constructor = "radical")]
748 provider: &ICU4XDataProvider,
749 ) -> Result<Box<ICU4XCodePointSetData>, ICU4XError> {
750 Ok(Box::new(ICU4XCodePointSetData(call_constructor_unstable!(
751 sets::radical [r => Ok(r.static_to_owned())],
757 #[diplomat::rust_link(icu::properties::sets::regional_indicator, Fn)]
758 #[diplomat::rust_link(icu::properties::sets::load_regional_indicator, Fn, hidden)]
759 #[diplomat::attr(all(supports = constructors, supports = fallible_constructors, supports = named_constructors), named_constructor = "regional_indicator")]
760 pub fn load_regional_indicator(
761 provider: &ICU4XDataProvider,
762 ) -> Result<Box<ICU4XCodePointSetData>, ICU4XError> {
763 Ok(Box::new(ICU4XCodePointSetData(call_constructor_unstable!(
764 sets::regional_indicator [r => Ok(r.static_to_owned())],
765 sets::load_regional_indicator,
770 #[diplomat::rust_link(icu::properties::sets::soft_dotted, Fn)]
771 #[diplomat::rust_link(icu::properties::sets::load_soft_dotted, Fn, hidden)]
772 #[diplomat::attr(all(supports = constructors, supports = fallible_constructors, supports = named_constructors), named_constructor = "soft_dotted")]
773 pub fn load_soft_dotted(
774 provider: &ICU4XDataProvider,
775 ) -> Result<Box<ICU4XCodePointSetData>, ICU4XError> {
776 Ok(Box::new(ICU4XCodePointSetData(call_constructor_unstable!(
777 sets::soft_dotted [r => Ok(r.static_to_owned())],
778 sets::load_soft_dotted,
783 #[diplomat::rust_link(icu::properties::sets::segment_starter, Fn)]
784 #[diplomat::rust_link(icu::properties::sets::load_segment_starter, Fn, hidden)]
785 #[diplomat::attr(all(supports = constructors, supports = fallible_constructors, supports = named_constructors), named_constructor = "segment_starter")]
786 pub fn load_segment_starter(
787 provider: &ICU4XDataProvider,
788 ) -> Result<Box<ICU4XCodePointSetData>, ICU4XError> {
789 Ok(Box::new(ICU4XCodePointSetData(call_constructor_unstable!(
790 sets::segment_starter [r => Ok(r.static_to_owned())],
791 sets::load_segment_starter,
796 #[diplomat::rust_link(icu::properties::sets::case_sensitive, Fn)]
797 #[diplomat::rust_link(icu::properties::sets::load_case_sensitive, Fn, hidden)]
798 #[diplomat::attr(all(supports = constructors, supports = fallible_constructors, supports = named_constructors), named_constructor = "case_sensitive")]
799 pub fn load_case_sensitive(
800 provider: &ICU4XDataProvider,
801 ) -> Result<Box<ICU4XCodePointSetData>, ICU4XError> {
802 Ok(Box::new(ICU4XCodePointSetData(call_constructor_unstable!(
803 sets::case_sensitive [r => Ok(r.static_to_owned())],
804 sets::load_case_sensitive,
809 #[diplomat::rust_link(icu::properties::sets::sentence_terminal, Fn)]
810 #[diplomat::rust_link(icu::properties::sets::load_sentence_terminal, Fn, hidden)]
811 #[diplomat::attr(all(supports = constructors, supports = fallible_constructors, supports = named_constructors), named_constructor = "sentence_terminal")]
812 pub fn load_sentence_terminal(
813 provider: &ICU4XDataProvider,
814 ) -> Result<Box<ICU4XCodePointSetData>, ICU4XError> {
815 Ok(Box::new(ICU4XCodePointSetData(call_constructor_unstable!(
816 sets::sentence_terminal [r => Ok(r.static_to_owned())],
817 sets::load_sentence_terminal,
822 #[diplomat::rust_link(icu::properties::sets::terminal_punctuation, Fn)]
823 #[diplomat::rust_link(icu::properties::sets::load_terminal_punctuation, Fn, hidden)]
824 #[diplomat::attr(all(supports = constructors, supports = fallible_constructors, supports = named_constructors), named_constructor = "terminal_punctuation")]
825 pub fn load_terminal_punctuation(
826 provider: &ICU4XDataProvider,
827 ) -> Result<Box<ICU4XCodePointSetData>, ICU4XError> {
828 Ok(Box::new(ICU4XCodePointSetData(call_constructor_unstable!(
829 sets::terminal_punctuation [r => Ok(r.static_to_owned())],
830 sets::load_terminal_punctuation,
835 #[diplomat::rust_link(icu::properties::sets::unified_ideograph, Fn)]
836 #[diplomat::rust_link(icu::properties::sets::load_unified_ideograph, Fn, hidden)]
837 #[diplomat::attr(all(supports = constructors, supports = fallible_constructors, supports = named_constructors), named_constructor = "unified_ideograph")]
838 pub fn load_unified_ideograph(
839 provider: &ICU4XDataProvider,
840 ) -> Result<Box<ICU4XCodePointSetData>, ICU4XError> {
841 Ok(Box::new(ICU4XCodePointSetData(call_constructor_unstable!(
842 sets::unified_ideograph [r => Ok(r.static_to_owned())],
843 sets::load_unified_ideograph,
848 #[diplomat::rust_link(icu::properties::sets::uppercase, Fn)]
849 #[diplomat::rust_link(icu::properties::sets::load_uppercase, Fn, hidden)]
850 #[diplomat::attr(all(supports = constructors, supports = fallible_constructors, supports = named_constructors), named_constructor = "uppercase")]
851 pub fn load_uppercase(
852 provider: &ICU4XDataProvider,
853 ) -> Result<Box<ICU4XCodePointSetData>, ICU4XError> {
854 Ok(Box::new(ICU4XCodePointSetData(call_constructor_unstable!(
855 sets::uppercase [r => Ok(r.static_to_owned())],
856 sets::load_uppercase,
861 #[diplomat::rust_link(icu::properties::sets::variation_selector, Fn)]
862 #[diplomat::rust_link(icu::properties::sets::load_variation_selector, Fn, hidden)]
863 #[diplomat::attr(all(supports = constructors, supports = fallible_constructors, supports = named_constructors), named_constructor = "variation_selector")]
864 pub fn load_variation_selector(
865 provider: &ICU4XDataProvider,
866 ) -> Result<Box<ICU4XCodePointSetData>, ICU4XError> {
867 Ok(Box::new(ICU4XCodePointSetData(call_constructor_unstable!(
868 sets::variation_selector [r => Ok(r.static_to_owned())],
869 sets::load_variation_selector,
874 #[diplomat::rust_link(icu::properties::sets::white_space, Fn)]
875 #[diplomat::rust_link(icu::properties::sets::load_white_space, Fn, hidden)]
876 #[diplomat::attr(all(supports = constructors, supports = fallible_constructors, supports = named_constructors), named_constructor = "white_space")]
877 pub fn load_white_space(
878 provider: &ICU4XDataProvider,
879 ) -> Result<Box<ICU4XCodePointSetData>, ICU4XError> {
880 Ok(Box::new(ICU4XCodePointSetData(call_constructor_unstable!(
881 sets::white_space [r => Ok(r.static_to_owned())],
882 sets::load_white_space,
887 #[diplomat::rust_link(icu::properties::sets::xdigit, Fn)]
888 #[diplomat::rust_link(icu::properties::sets::load_xdigit, Fn, hidden)]
889 #[diplomat::attr(all(supports = constructors, supports = fallible_constructors, supports = named_constructors), named_constructor = "xdigit")]
891 provider: &ICU4XDataProvider,
892 ) -> Result<Box<ICU4XCodePointSetData>, ICU4XError> {
893 Ok(Box::new(ICU4XCodePointSetData(call_constructor_unstable!(
894 sets::xdigit [r => Ok(r.static_to_owned())],
900 #[diplomat::rust_link(icu::properties::sets::xid_continue, Fn)]
901 #[diplomat::rust_link(icu::properties::sets::load_xid_continue, Fn, hidden)]
902 #[diplomat::attr(all(supports = constructors, supports = fallible_constructors, supports = named_constructors), named_constructor = "xid_continue")]
903 pub fn load_xid_continue(
904 provider: &ICU4XDataProvider,
905 ) -> Result<Box<ICU4XCodePointSetData>, ICU4XError> {
906 Ok(Box::new(ICU4XCodePointSetData(call_constructor_unstable!(
907 sets::xid_continue [r => Ok(r.static_to_owned())],
908 sets::load_xid_continue,
913 #[diplomat::rust_link(icu::properties::sets::xid_start, Fn)]
914 #[diplomat::rust_link(icu::properties::sets::load_xid_start, Fn, hidden)]
915 #[diplomat::attr(all(supports = constructors, supports = fallible_constructors, supports = named_constructors), named_constructor = "xid_start")]
916 pub fn load_xid_start(
917 provider: &ICU4XDataProvider,
918 ) -> Result<Box<ICU4XCodePointSetData>, ICU4XError> {
919 Ok(Box::new(ICU4XCodePointSetData(call_constructor_unstable!(
920 sets::xid_start [r => Ok(r.static_to_owned())],
921 sets::load_xid_start,
926 /// Loads data for a property specified as a string as long as it is one of the
927 /// [ECMA-262 binary properties][ecma] (not including Any, ASCII, and Assigned pseudoproperties).
929 /// Returns `ICU4XError::PropertyUnexpectedPropertyNameError` in case the string does not
930 /// match any property in the list
932 /// [ecma]: https://tc39.es/ecma262/#table-binary-unicode-properties
933 #[diplomat::rust_link(icu::properties::sets::for_ecma262, Fn)]
934 #[diplomat::rust_link(icu::properties::sets::load_for_ecma262, Fn, hidden)]
935 #[diplomat::attr(all(supports = constructors, supports = fallible_constructors, supports = named_constructors), named_constructor = "for_ecma262")]
936 pub fn load_for_ecma262(
937 provider: &ICU4XDataProvider,
938 property_name: &DiplomatStr,
939 ) -> Result<Box<ICU4XCodePointSetData>, ICU4XError> {
940 let name = str::from_utf8(property_name)?;
941 Ok(Box::new(ICU4XCodePointSetData(call_constructor_unstable!(
942 sets::load_for_ecma262 [r => r.map(|r| r.static_to_owned())],
943 sets::load_for_ecma262_unstable,