pub struct CodePointInversionListAndStringList<'data> { /* private fields */ }
Expand description
A data structure providing a concrete implementation of a set of code points and strings, using an inversion list for the code points.
This is what ICU4C calls a UnicodeSet
.
Implementations§
Source§impl<'data> CodePointInversionListAndStringList<'data>
impl<'data> CodePointInversionListAndStringList<'data>
Sourcepub fn try_from(
cp_inv_list: CodePointInversionList<'data>,
str_list: VarZeroVec<'data, str>,
) -> Result<Self, InvalidStringList>
pub fn try_from( cp_inv_list: CodePointInversionList<'data>, str_list: VarZeroVec<'data, str>, ) -> Result<Self, InvalidStringList>
Returns a new CodePointInversionListAndStringList
from both a CodePointInversionList
for the
code points and a VarZeroVec
<
str
>
of strings.
Sourcepub fn size(&self) -> usize
pub fn size(&self) -> usize
Returns the number of elements in this set (its cardinality). Note than the elements of a set may include both individual codepoints and strings.
Sourcepub fn has_strings(&self) -> bool
pub fn has_strings(&self) -> bool
Return true if this set contains multi-code point strings or the empty string.
Sourcepub fn contains_str(&self, s: &str) -> bool
pub fn contains_str(&self, s: &str) -> bool
§Examples
use icu::collections::codepointinvlist::CodePointInversionList;
use icu::collections::codepointinvliststringlist::CodePointInversionListAndStringList;
use zerovec::VarZeroVec;
let cp_slice = &[0, 0x1_0000, 0x10_FFFF, 0x11_0000];
let cp_list =
CodePointInversionList::try_from_u32_inversion_list_slice(cp_slice).unwrap();
let str_slice = &["", "bmp_max", "unicode_max", "zero"];
let str_list = VarZeroVec::<str>::from(str_slice);
let cpilsl = CodePointInversionListAndStringList::try_from(cp_list, str_list).unwrap();
assert!(cpilsl.contains_str("bmp_max"));
assert!(cpilsl.contains_str(""));
assert!(cpilsl.contains_str("A"));
assert!(cpilsl.contains_str("ቔ")); // U+1254 ETHIOPIC SYLLABLE QHEE
assert!(!cpilsl.contains_str("bazinga!"));
Sourcepub fn contains32(&self, cp: u32) -> bool
pub fn contains32(&self, cp: u32) -> bool
§Examples
use icu::collections::codepointinvlist::CodePointInversionList;
use icu::collections::codepointinvliststringlist::CodePointInversionListAndStringList;
use zerovec::VarZeroVec;
let cp_slice = &[0, 0x80, 0xFFFF, 0x1_0000, 0x10_FFFF, 0x11_0000];
let cp_list =
CodePointInversionList::try_from_u32_inversion_list_slice(cp_slice).unwrap();
let str_slice = &["", "ascii_max", "bmp_max", "unicode_max", "zero"];
let str_list = VarZeroVec::<str>::from(str_slice);
let cpilsl = CodePointInversionListAndStringList::try_from(cp_list, str_list).unwrap();
assert!(cpilsl.contains32(0));
assert!(cpilsl.contains32(0x0042));
assert!(!cpilsl.contains32(0x0080));
Sourcepub fn contains(&self, ch: char) -> bool
pub fn contains(&self, ch: char) -> bool
§Examples
use icu::collections::codepointinvlist::CodePointInversionList;
use icu::collections::codepointinvliststringlist::CodePointInversionListAndStringList;
use zerovec::VarZeroVec;
let cp_slice = &[0, 0x1_0000, 0x10_FFFF, 0x11_0000];
let cp_list =
CodePointInversionList::try_from_u32_inversion_list_slice(cp_slice).unwrap();
let str_slice = &["", "bmp_max", "unicode_max", "zero"];
let str_list = VarZeroVec::<str>::from(str_slice);
let cpilsl = CodePointInversionListAndStringList::try_from(cp_list, str_list).unwrap();
assert!(cpilsl.contains('A'));
assert!(cpilsl.contains('ቔ')); // U+1254 ETHIOPIC SYLLABLE QHEE
assert!(!cpilsl.contains('\u{1_0000}'));
assert!(!cpilsl.contains('🨫')); // U+1FA2B NEUTRAL CHESS TURNED QUEEN
Sourcepub fn code_points(&self) -> &CodePointInversionList<'data>
pub fn code_points(&self) -> &CodePointInversionList<'data>
Access the underlying CodePointInversionList
.
Sourcepub fn strings(&self) -> &VarZeroSlice<str>
pub fn strings(&self) -> &VarZeroSlice<str>
Access the contained strings.
Trait Implementations§
Source§impl<'data> Clone for CodePointInversionListAndStringList<'data>
impl<'data> Clone for CodePointInversionListAndStringList<'data>
Source§fn clone(&self) -> CodePointInversionListAndStringList<'data>
fn clone(&self) -> CodePointInversionListAndStringList<'data>
1.0.0 · Source§fn clone_from(&mut self, source: &Self)
fn clone_from(&mut self, source: &Self)
source
. Read moreSource§impl<'data> Debug for CodePointInversionListAndStringList<'data>
impl<'data> Debug for CodePointInversionListAndStringList<'data>
Source§impl<'data> EncodeAsVarULE<CodePointInversionListAndStringListULE> for &CodePointInversionListAndStringList<'data>
impl<'data> EncodeAsVarULE<CodePointInversionListAndStringListULE> for &CodePointInversionListAndStringList<'data>
Source§fn encode_var_ule_as_slices<R>(&self, cb: impl FnOnce(&[&[u8]]) -> R) -> R
fn encode_var_ule_as_slices<R>(&self, cb: impl FnOnce(&[&[u8]]) -> R) -> R
cb
with a piecewise list of byte slices that when concatenated
produce the memory pattern of the corresponding instance of T
. Read moreSource§fn encode_var_ule_len(&self) -> usize
fn encode_var_ule_len(&self) -> usize
VarULE
typeSource§fn encode_var_ule_write(&self, dst: &mut [u8])
fn encode_var_ule_write(&self, dst: &mut [u8])
VarULE
type to the dst
buffer. dst
should
be the size of Self::encode_var_ule_len()
Source§impl<'data> EncodeAsVarULE<CodePointInversionListAndStringListULE> for CodePointInversionListAndStringList<'data>
impl<'data> EncodeAsVarULE<CodePointInversionListAndStringListULE> for CodePointInversionListAndStringList<'data>
Source§fn encode_var_ule_as_slices<R>(&self, cb: impl FnOnce(&[&[u8]]) -> R) -> R
fn encode_var_ule_as_slices<R>(&self, cb: impl FnOnce(&[&[u8]]) -> R) -> R
cb
with a piecewise list of byte slices that when concatenated
produce the memory pattern of the corresponding instance of T
. Read moreSource§fn encode_var_ule_len(&self) -> usize
fn encode_var_ule_len(&self) -> usize
VarULE
typeSource§fn encode_var_ule_write(&self, dst: &mut [u8])
fn encode_var_ule_write(&self, dst: &mut [u8])
VarULE
type to the dst
buffer. dst
should
be the size of Self::encode_var_ule_len()
Source§impl<'data> From<&'data CodePointInversionListAndStringListULE> for CodePointInversionListAndStringList<'data>
impl<'data> From<&'data CodePointInversionListAndStringListULE> for CodePointInversionListAndStringList<'data>
Source§fn from(other: &'data CodePointInversionListAndStringListULE) -> Self
fn from(other: &'data CodePointInversionListAndStringListULE) -> Self
Source§impl<'data> PartialEq for CodePointInversionListAndStringList<'data>
impl<'data> PartialEq for CodePointInversionListAndStringList<'data>
Source§fn eq(&self, other: &CodePointInversionListAndStringList<'data>) -> bool
fn eq(&self, other: &CodePointInversionListAndStringList<'data>) -> bool
self
and other
values to be equal, and is used by ==
.Source§impl<'a> Yokeable<'a> for CodePointInversionListAndStringList<'static>
impl<'a> Yokeable<'a> for CodePointInversionListAndStringList<'static>
Source§type Output = CodePointInversionListAndStringList<'a>
type Output = CodePointInversionListAndStringList<'a>
Self
with the 'static
replaced with 'a
, i.e. Self<'a>
Source§fn transform_owned(self) -> Self::Output
fn transform_owned(self) -> Self::Output
Source§impl<'data> ZeroFrom<'data, CodePointInversionListAndStringListULE> for CodePointInversionListAndStringList<'data>
impl<'data> ZeroFrom<'data, CodePointInversionListAndStringListULE> for CodePointInversionListAndStringList<'data>
Source§fn zero_from(other: &'data CodePointInversionListAndStringListULE) -> Self
fn zero_from(other: &'data CodePointInversionListAndStringListULE) -> Self
C
into a struct that may retain references into C
.Source§impl<'zf, 'zf_inner> ZeroFrom<'zf, CodePointInversionListAndStringList<'zf_inner>> for CodePointInversionListAndStringList<'zf>
impl<'zf, 'zf_inner> ZeroFrom<'zf, CodePointInversionListAndStringList<'zf_inner>> for CodePointInversionListAndStringList<'zf>
Source§fn zero_from(this: &'zf CodePointInversionListAndStringList<'zf_inner>) -> Self
fn zero_from(this: &'zf CodePointInversionListAndStringList<'zf_inner>) -> Self
C
into a struct that may retain references into C
.impl<'data> Eq for CodePointInversionListAndStringList<'data>
impl<'data> StructuralPartialEq for CodePointInversionListAndStringList<'data>
Auto Trait Implementations§
impl<'data> Freeze for CodePointInversionListAndStringList<'data>
impl<'data> RefUnwindSafe for CodePointInversionListAndStringList<'data>
impl<'data> Send for CodePointInversionListAndStringList<'data>
impl<'data> Sync for CodePointInversionListAndStringList<'data>
impl<'data> Unpin for CodePointInversionListAndStringList<'data>
impl<'data> UnwindSafe for CodePointInversionListAndStringList<'data>
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: 56 bytes