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<CodePointInversionListAndStringList<'data>, InvalidStringList>
 
pub fn try_from( cp_inv_list: CodePointInversionList<'data>, str_list: VarZeroVec<'data, str>, ) -> Result<CodePointInversionListAndStringList<'data>, 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 QUEENSourcepub 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<'de, 'data> Deserialize<'de> for CodePointInversionListAndStringList<'data>where
    'de: 'data,
 
impl<'de, 'data> Deserialize<'de> for CodePointInversionListAndStringList<'data>where
    'de: 'data,
Source§fn deserialize<__D>(
    __deserializer: __D,
) -> Result<CodePointInversionListAndStringList<'data>, <__D as Deserializer<'de>>::Error>where
    __D: Deserializer<'de>,
 
fn deserialize<__D>(
    __deserializer: __D,
) -> Result<CodePointInversionListAndStringList<'data>, <__D as Deserializer<'de>>::Error>where
    __D: Deserializer<'de>,
Deserialize this value from the given Serde deserializer. Read more
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<'data> From<&'data CodePointInversionListAndStringListULE> for CodePointInversionListAndStringList<'data>
 
impl<'data> From<&'data CodePointInversionListAndStringListULE> for CodePointInversionListAndStringList<'data>
Source§fn from(
    other: &'data CodePointInversionListAndStringListULE,
) -> CodePointInversionListAndStringList<'data>
 
fn from( other: &'data CodePointInversionListAndStringListULE, ) -> CodePointInversionListAndStringList<'data>
Converts to this type from the input type.
Source§impl<'a> FromIterator<&'a str> for CodePointInversionListAndStringList<'_>
 
impl<'a> FromIterator<&'a str> for CodePointInversionListAndStringList<'_>
Source§fn from_iter<I>(it: I) -> CodePointInversionListAndStringList<'_>where
    I: IntoIterator<Item = &'a str>,
 
fn from_iter<I>(it: I) -> CodePointInversionListAndStringList<'_>where
    I: IntoIterator<Item = &'a str>,
Creates a value from an iterator. Read more
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
Tests for 
self and other values to be equal, and is used by ==.Source§impl<'data> Serialize for CodePointInversionListAndStringList<'data>
 
impl<'data> Serialize for CodePointInversionListAndStringList<'data>
Source§fn serialize<__S>(
    &self,
    __serializer: __S,
) -> Result<<__S as Serializer>::Ok, <__S as Serializer>::Error>where
    __S: Serializer,
 
fn serialize<__S>(
    &self,
    __serializer: __S,
) -> Result<<__S as Serializer>::Ok, <__S as Serializer>::Error>where
    __S: Serializer,
Serialize this value into the given Serde serializer. Read more
Source§impl<'a> Yokeable<'a> for CodePointInversionListAndStringList<'static>
 
impl<'a> Yokeable<'a> for CodePointInversionListAndStringList<'static>
Source§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(
    &'a self,
) -> &'a <CodePointInversionListAndStringList<'static> as Yokeable<'a>>::Output
 
fn transform( &'a self, ) -> &'a <CodePointInversionListAndStringList<'static> as Yokeable<'a>>::Output
Source§fn transform_owned(
    self,
) -> <CodePointInversionListAndStringList<'static> as Yokeable<'a>>::Output
 
fn transform_owned( self, ) -> <CodePointInversionListAndStringList<'static> as Yokeable<'a>>::Output
Source§unsafe fn make(
    this: <CodePointInversionListAndStringList<'static> as Yokeable<'a>>::Output,
) -> CodePointInversionListAndStringList<'static>
 
unsafe fn make( this: <CodePointInversionListAndStringList<'static> as Yokeable<'a>>::Output, ) -> CodePointInversionListAndStringList<'static>
This method can be used to cast away 
Self<'a>’s lifetime. Read moreSource§fn transform_mut<F>(&'a mut self, f: F)where
    F: 'static + for<'b> FnOnce(&'b mut <CodePointInversionListAndStringList<'static> as Yokeable<'a>>::Output),
 
fn transform_mut<F>(&'a mut self, f: F)where
    F: 'static + for<'b> FnOnce(&'b mut <CodePointInversionListAndStringList<'static> as Yokeable<'a>>::Output),
This method must cast 
self between &'a mut Self<'static> and &'a mut Self<'a>,
and pass it to f. Read moreSource§impl<'data> ZeroFrom<'data, CodePointInversionListAndStringListULE> for CodePointInversionListAndStringList<'data>
 
impl<'data> ZeroFrom<'data, CodePointInversionListAndStringListULE> for CodePointInversionListAndStringList<'data>
Source§fn zero_from(
    other: &'data CodePointInversionListAndStringListULE,
) -> CodePointInversionListAndStringList<'data>
 
fn zero_from( other: &'data CodePointInversionListAndStringListULE, ) -> CodePointInversionListAndStringList<'data>
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>,
) -> CodePointInversionListAndStringList<'zf>
 
fn zero_from( this: &'zf CodePointInversionListAndStringList<'zf_inner>, ) -> CodePointInversionListAndStringList<'zf>
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
Source§impl<T> CloneToUninit for Twhere
    T: Clone,
 
impl<T> CloneToUninit for Twhere
    T: Clone,
Source§impl<T> IntoEither for T
 
impl<T> IntoEither for T
Source§fn into_either(self, into_left: bool) -> Either<Self, Self>
 
fn into_either(self, into_left: bool) -> Either<Self, Self>
Converts 
self into a Left variant of Either<Self, Self>
if into_left is true.
Converts self into a Right variant of Either<Self, Self>
otherwise. Read moreSource§fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
 
fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
Converts 
self into a Left variant of Either<Self, Self>
if into_left(&self) returns true.
Converts self into a Right variant of Either<Self, Self>
otherwise. Read more