pub struct CodePointInversionListAndStringList<'data> {
cp_inv_list: CodePointInversionList<'data>,
str_list: VarZeroVec<'data, str>,
}
Expand description
A data structure providing a concrete implementation of a UnicodeSet
(which represents a set of code points and strings) using an inversion list for the code points and a simple
list-like structure to store and iterate over the strings.
Fields§
§cp_inv_list: CodePointInversionList<'data>
§str_list: VarZeroVec<'data, str>
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, CodePointInversionListAndStringListError>
pub fn try_from( cp_inv_list: CodePointInversionList<'data>, str_list: VarZeroVec<'data, str>, ) -> Result<Self, CodePointInversionListAndStringListError>
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(&self, s: &str) -> bool
pub fn contains(&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_clone_from_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("bmp_max"));
assert!(cpilsl.contains(""));
assert!(cpilsl.contains("A"));
assert!(cpilsl.contains("ቔ")); // U+1254 ETHIOPIC SYLLABLE QHEE
assert!(!cpilsl.contains("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_clone_from_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_char(&self, ch: char) -> bool
pub fn contains_char(&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_clone_from_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_char('A'));
assert!(cpilsl.contains_char('ቔ')); // U+1254 ETHIOPIC SYLLABLE QHEE
assert!(!cpilsl.contains_char('\u{1_0000}'));
assert!(!cpilsl.contains_char('🨫')); // 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>
Returns a copy of the value. Read more
1.0.0 · source§fn clone_from(&mut self, source: &Self)
fn clone_from(&mut self, source: &Self)
Performs copy-assignment from
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
Calls
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
Return the length, in bytes, of the corresponding
VarULE
typesource§fn encode_var_ule_write(&self, dst: &mut [u8])
fn encode_var_ule_write(&self, dst: &mut [u8])
Write the corresponding
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
Calls
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
Return the length, in bytes, of the corresponding
VarULE
typesource§fn encode_var_ule_write(&self, dst: &mut [u8])
fn encode_var_ule_write(&self, dst: &mut [u8])
Write the corresponding
VarULE
type to the dst
buffer. dst
should
be the size of Self::encode_var_ule_len()
source§impl<'a> FromIterator<&'a str> for CodePointInversionListAndStringList<'_>
impl<'a> FromIterator<&'a str> for CodePointInversionListAndStringList<'_>
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
This method tests for
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>
§type Output = CodePointInversionListAndStringList<'a>
type Output = CodePointInversionListAndStringList<'a>
This type MUST be
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
Clone the other
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
Clone the other
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
Mutably borrows from an owned value. Read more