pub struct CodePointSetDataBorrowed<'a> { /* private fields */ }
Expand description
A borrowed wrapper around code point set data, returned by
CodePointSetData::as_borrowed()
. More efficient to query.
Implementations§
Source§impl CodePointSetDataBorrowed<'static>
impl CodePointSetDataBorrowed<'static>
Sourcepub const fn new<P: BinaryProperty>() -> Self
pub const fn new<P: BinaryProperty>() -> Self
Creates a new CodePointSetData
for a BinaryProperty
.
✨ Enabled with the compiled_data
Cargo feature.
Sourcepub const fn static_to_owned(self) -> CodePointSetData
pub const fn static_to_owned(self) -> CodePointSetData
Cheaply converts a CodePointSetDataBorrowed<'static>
into a CodePointSetData
.
Note: Due to branching and indirection, using CodePointSetData
might inhibit some
compile-time optimizations that are possible with CodePointSetDataBorrowed
.
Source§impl<'a> CodePointSetDataBorrowed<'a>
impl<'a> CodePointSetDataBorrowed<'a>
Sourcepub fn contains(self, ch: char) -> bool
pub fn contains(self, ch: char) -> bool
Check if the set contains a character
use icu::properties::CodePointSetData;
use icu::properties::props::Alphabetic;
let alphabetic = CodePointSetData::new::<Alphabetic>();
assert!(!alphabetic.contains('3'));
assert!(!alphabetic.contains('੩')); // U+0A69 GURMUKHI DIGIT THREE
assert!(alphabetic.contains('A'));
assert!(alphabetic.contains('Ä')); // U+00C4 LATIN CAPITAL LETTER A WITH DIAERESIS
Sourcepub fn contains32(self, ch: u32) -> bool
pub fn contains32(self, ch: u32) -> bool
See Self::contains
.
Sourcepub fn iter_ranges(self) -> impl Iterator<Item = RangeInclusive<u32>> + 'a
pub fn iter_ranges(self) -> impl Iterator<Item = RangeInclusive<u32>> + 'a
included in the CodePointSetData
Ranges are returned as RangeInclusive
, which is inclusive of its
end
bound value. An end-inclusive behavior matches the ICU4C/J
behavior of ranges, ex: UnicodeSet::contains(UChar32 start, UChar32 end)
.
§Example
use icu::properties::props::Alphabetic;
use icu::properties::CodePointSetData;
let alphabetic = CodePointSetData::new::<Alphabetic>();
let mut ranges = alphabetic.iter_ranges();
assert_eq!(Some(0x0041..=0x005A), ranges.next()); // 'A'..'Z'
assert_eq!(Some(0x0061..=0x007A), ranges.next()); // 'a'..'z'
Sourcepub fn iter_ranges_complemented(
self,
) -> impl Iterator<Item = RangeInclusive<u32>> + 'a
pub fn iter_ranges_complemented( self, ) -> impl Iterator<Item = RangeInclusive<u32>> + 'a
not included in the CodePointSetData
Ranges are returned as RangeInclusive
, which is inclusive of its
end
bound value. An end-inclusive behavior matches the ICU4C/J
behavior of ranges, ex: UnicodeSet::contains(UChar32 start, UChar32 end)
.
§Example
use icu::properties::props::Alphabetic;
use icu::properties::CodePointSetData;
let alphabetic = CodePointSetData::new::<Alphabetic>();
let mut ranges = alphabetic.iter_ranges();
assert_eq!(Some(0x0041..=0x005A), ranges.next()); // 'A'..'Z'
assert_eq!(Some(0x0061..=0x007A), ranges.next()); // 'a'..'z'
Trait Implementations§
Source§impl<'a> Clone for CodePointSetDataBorrowed<'a>
impl<'a> Clone for CodePointSetDataBorrowed<'a>
Source§fn clone(&self) -> CodePointSetDataBorrowed<'a>
fn clone(&self) -> CodePointSetDataBorrowed<'a>
1.0.0 · Source§fn clone_from(&mut self, source: &Self)
fn clone_from(&mut self, source: &Self)
source
. Read moreSource§impl<'a> Debug for CodePointSetDataBorrowed<'a>
impl<'a> Debug for CodePointSetDataBorrowed<'a>
impl<'a> Copy for CodePointSetDataBorrowed<'a>
Auto Trait Implementations§
impl<'a> Freeze for CodePointSetDataBorrowed<'a>
impl<'a> RefUnwindSafe for CodePointSetDataBorrowed<'a>
impl<'a> Send for CodePointSetDataBorrowed<'a>
impl<'a> Sync for CodePointSetDataBorrowed<'a>
impl<'a> Unpin for CodePointSetDataBorrowed<'a>
impl<'a> UnwindSafe for CodePointSetDataBorrowed<'a>
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> CloneToUninit for Twhere
T: Clone,
impl<T> CloneToUninit for Twhere
T: Clone,
impl<T> ErasedDestructor for Twhere
T: 'static,
Layout§
Note: Most layout information is completely unstable and may even differ between compilations. The only exception is types with certain repr(...)
attributes. Please see the Rust Reference's “Type Layout” chapter for details on type layout guarantees.
Size: 8 bytes