pub struct CodePointInversionListAndStringList<'data> { /* private fields */ }
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.
Implementations§
source§impl<'data> CodePointInversionListAndStringList<'data>
impl<'data> CodePointInversionListAndStringList<'data>
sourcepub fn try_from(
cp_inv_list: CodePointInversionList<'data>,
str_list: VarZeroVec<'data, str, Index16>
) -> Result<CodePointInversionListAndStringList<'data>, CodePointInversionListAndStringListError>
pub fn try_from( cp_inv_list: CodePointInversionList<'data>, str_list: VarZeroVec<'data, str, Index16> ) -> Result<CodePointInversionListAndStringList<'data>, 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
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<'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<CodePointInversionListAndStringList<'data>> for CodePointInversionListAndStringList<'data>
impl<'data> PartialEq<CodePointInversionListAndStringList<'data>> 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<'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>
§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<'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
.