pub struct CodePointInversionListBuilder { /* private fields */ }Expand description
A builder for CodePointInversionList.
Provides exposure to builder functions and conversion to CodePointInversionList
Implementations§
Source§impl CodePointInversionListBuilder
 
impl CodePointInversionListBuilder
Sourcepub const fn new() -> CodePointInversionListBuilder
 
pub const fn new() -> CodePointInversionListBuilder
Returns empty CodePointInversionListBuilder
Sourcepub fn build(self) -> CodePointInversionList<'static>
 
pub fn build(self) -> CodePointInversionList<'static>
Returns a CodePointInversionList and consumes the CodePointInversionListBuilder
Sourcepub fn add_char(&mut self, c: char)
 
pub fn add_char(&mut self, c: char)
Add the character to the CodePointInversionListBuilder
§Examples
use icu::collections::codepointinvlist::CodePointInversionListBuilder;
let mut builder = CodePointInversionListBuilder::new();
builder.add_char('a');
let check = builder.build();
assert_eq!(check.iter_chars().next(), Some('a'));Sourcepub fn add32(&mut self, c: u32)
 
pub fn add32(&mut self, c: u32)
Add the code point value to the CodePointInversionListBuilder
Note: Even though u32 and char in Rust are non-negative 4-byte
values, there is an important difference. A u32 can take values up to
a very large integer value, while a char in Rust is defined to be in
the range from 0 to the maximum valid Unicode Scalar Value.
§Examples
use icu::collections::codepointinvlist::CodePointInversionListBuilder;
let mut builder = CodePointInversionListBuilder::new();
builder.add32(0x41);
let check = builder.build();
assert!(check.contains32(0x41));Sourcepub fn add_range(&mut self, range: impl RangeBounds<char>)
 
pub fn add_range(&mut self, range: impl RangeBounds<char>)
Add the range of characters to the CodePointInversionListBuilder
§Examples
use icu::collections::codepointinvlist::CodePointInversionListBuilder;
let mut builder = CodePointInversionListBuilder::new();
builder.add_range('A'..='Z');
let check = builder.build();
assert_eq!(check.iter_chars().next(), Some('A'));Sourcepub fn add_range32(&mut self, range: impl RangeBounds<u32>)
 
pub fn add_range32(&mut self, range: impl RangeBounds<u32>)
Add the range of characters, represented as u32, to the CodePointInversionListBuilder
§Examples
use icu::collections::codepointinvlist::CodePointInversionListBuilder;
let mut builder = CodePointInversionListBuilder::new();
builder.add_range32(0xd800..=0xdfff);
let check = builder.build();
assert!(check.contains32(0xd900));Sourcepub fn add_set(&mut self, set: &CodePointInversionList<'_>)
 
pub fn add_set(&mut self, set: &CodePointInversionList<'_>)
Add the CodePointInversionList reference to the CodePointInversionListBuilder
§Examples
use icu::collections::codepointinvlist::{
    CodePointInversionList, CodePointInversionListBuilder,
};
let mut builder = CodePointInversionListBuilder::new();
let set = CodePointInversionList::try_from_u32_inversion_list_slice(&[
    0x41, 0x4C,
])
.unwrap();
builder.add_set(&set);
let check = builder.build();
assert_eq!(check.iter_chars().next(), Some('A'));Sourcepub fn remove_char(&mut self, c: char)
 
pub fn remove_char(&mut self, c: char)
Remove the character from the CodePointInversionListBuilder
§Examples
use icu::collections::codepointinvlist::CodePointInversionListBuilder;
let mut builder = CodePointInversionListBuilder::new();
builder.add_range('A'..='Z');
builder.remove_char('A');
let check = builder.build();
assert_eq!(check.iter_chars().next(), Some('B'));Sourcepub fn remove_range(&mut self, range: impl RangeBounds<char>)
 
pub fn remove_range(&mut self, range: impl RangeBounds<char>)
Remove the range of characters from the CodePointInversionListBuilder
§Examples
use icu::collections::codepointinvlist::CodePointInversionListBuilder;
let mut builder = CodePointInversionListBuilder::new();
builder.add_range('A'..='Z');
builder.remove_range('A'..='C');
let check = builder.build();
assert_eq!(check.iter_chars().next(), Some('D'));Sourcepub fn remove_range32(&mut self, range: impl RangeBounds<u32>)
 
pub fn remove_range32(&mut self, range: impl RangeBounds<u32>)
Sourcepub fn remove_set(&mut self, set: &CodePointInversionList<'_>)
 
pub fn remove_set(&mut self, set: &CodePointInversionList<'_>)
Remove the CodePointInversionList from the CodePointInversionListBuilder
§Examples
use icu::collections::codepointinvlist::{CodePointInversionList, CodePointInversionListBuilder};
let mut builder = CodePointInversionListBuilder::new();
let set = CodePointInversionList::try_from_u32_inversion_list_slice(&[0x41, 0x46]).unwrap();
builder.add_range('A'..='Z');
builder.remove_set(&set); // removes 'A'..='E'
let check = builder.build();
assert_eq!(check.iter_chars().next(), Some('F'));Sourcepub fn retain_char(&mut self, c: char)
 
pub fn retain_char(&mut self, c: char)
Retain the specified character in the CodePointInversionListBuilder if it exists
§Examples
use icu::collections::codepointinvlist::CodePointInversionListBuilder;
let mut builder = CodePointInversionListBuilder::new();
builder.add_range('A'..='Z');
builder.retain_char('A');
let set = builder.build();
let mut check = set.iter_chars();
assert_eq!(check.next(), Some('A'));
assert_eq!(check.next(), None);Sourcepub fn retain_range(&mut self, range: impl RangeBounds<char>)
 
pub fn retain_range(&mut self, range: impl RangeBounds<char>)
Retain the range of characters located within the CodePointInversionListBuilder
§Examples
use icu::collections::codepointinvlist::CodePointInversionListBuilder;
let mut builder = CodePointInversionListBuilder::new();
builder.add_range('A'..='Z');
builder.retain_range('A'..='B');
let set = builder.build();
let mut check = set.iter_chars();
assert_eq!(check.next(), Some('A'));
assert_eq!(check.next(), Some('B'));
assert_eq!(check.next(), None);Sourcepub fn retain_range32(&mut self, range: impl RangeBounds<u32>)
 
pub fn retain_range32(&mut self, range: impl RangeBounds<u32>)
Sourcepub fn retain_set(&mut self, set: &CodePointInversionList<'_>)
 
pub fn retain_set(&mut self, set: &CodePointInversionList<'_>)
Retain the elements in the specified set within the CodePointInversionListBuilder
§Examples
use icu::collections::codepointinvlist::{
    CodePointInversionList, CodePointInversionListBuilder,
};
let mut builder = CodePointInversionListBuilder::new();
let set =
    CodePointInversionList::try_from_u32_inversion_list_slice(&[65, 70])
        .unwrap();
builder.add_range('A'..='Z');
builder.retain_set(&set); // retains 'A'..='E'
let check = builder.build();
assert!(check.contains('A'));
assert!(!check.contains('G'));Sourcepub fn complement(&mut self)
 
pub fn complement(&mut self)
Computes the complement of the builder, inverting the builder (any elements in the builder are removed, while any elements not in the builder are added)
§Examples
use icu::collections::codepointinvlist::{
    CodePointInversionList, CodePointInversionListBuilder,
};
let mut builder = CodePointInversionListBuilder::new();
let set = CodePointInversionList::try_from_u32_inversion_list_slice(&[
    0x0,
    0x41,
    0x46,
    (std::char::MAX as u32) + 1,
])
.unwrap();
builder.add_set(&set);
builder.complement();
let check = builder.build();
assert_eq!(check.iter_chars().next(), Some('A'));Sourcepub fn complement_char(&mut self, c: char)
 
pub fn complement_char(&mut self, c: char)
Complements the character in the builder, adding it if not in the builder, and removing it otherwise.
§Examples
use icu::collections::codepointinvlist::CodePointInversionListBuilder;
let mut builder = CodePointInversionListBuilder::new();
builder.add_range('A'..='D');
builder.complement_char('A');
builder.complement_char('E');
let check = builder.build();
assert!(check.contains('E'));
assert!(!check.contains('A'));Sourcepub fn complement32(&mut self, c: u32)
 
pub fn complement32(&mut self, c: u32)
Sourcepub fn complement_range(&mut self, range: impl RangeBounds<char>)
 
pub fn complement_range(&mut self, range: impl RangeBounds<char>)
Complements the range in the builder, adding any elements in the range if not in the builder, and removing them otherwise.
§Examples
use icu::collections::codepointinvlist::CodePointInversionListBuilder;
let mut builder = CodePointInversionListBuilder::new();
builder.add_range('A'..='D');
builder.complement_range('C'..='F');
let check = builder.build();
assert!(check.contains('F'));
assert!(!check.contains('C'));Sourcepub fn complement_range32(&mut self, range: impl RangeBounds<u32>)
 
pub fn complement_range32(&mut self, range: impl RangeBounds<u32>)
Sourcepub fn complement_set(&mut self, set: &CodePointInversionList<'_>)
 
pub fn complement_set(&mut self, set: &CodePointInversionList<'_>)
Complements the set in the builder, adding any elements in the set if not in the builder, and removing them otherwise.
§Examples
use icu::collections::codepointinvlist::{
    CodePointInversionList, CodePointInversionListBuilder,
};
let mut builder = CodePointInversionListBuilder::new();
let set = CodePointInversionList::try_from_u32_inversion_list_slice(&[
    0x41, 0x46, 0x4B, 0x5A,
])
.unwrap();
builder.add_range('C'..='N'); // 67 - 78
builder.complement_set(&set);
let check = builder.build();
assert!(check.contains('Q')); // 81
assert!(!check.contains('N')); // 78Trait Implementations§
Source§impl Default for CodePointInversionListBuilder
 
impl Default for CodePointInversionListBuilder
Source§fn default() -> CodePointInversionListBuilder
 
fn default() -> CodePointInversionListBuilder
Auto Trait Implementations§
impl Freeze for CodePointInversionListBuilder
impl RefUnwindSafe for CodePointInversionListBuilder
impl Send for CodePointInversionListBuilder
impl Sync for CodePointInversionListBuilder
impl Unpin for CodePointInversionListBuilder
impl UnwindSafe for CodePointInversionListBuilder
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> 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>
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>
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