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 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 Bake for CodePointInversionListAndStringList<'_>
impl Bake for CodePointInversionListAndStringList<'_>
source§fn bake(&self, env: &CrateEnv) -> TokenStream
fn bake(&self, env: &CrateEnv) -> TokenStream
source§impl BakeSize for CodePointInversionListAndStringList<'_>
impl BakeSize for CodePointInversionListAndStringList<'_>
source§fn borrows_size(&self) -> usize
fn borrows_size(&self) -> usize
Returns the size
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<'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§unsafe fn clone_to_uninit(&self, dst: *mut T)
unsafe fn clone_to_uninit(&self, dst: *mut T)
🔬This is a nightly-only experimental API. (
clone_to_uninit
)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