Struct icu::uniset::UnicodeSetBuilder [−][src]
pub struct UnicodeSetBuilder { /* fields omitted */ }
A builder for UnicodeSet
.
Provides exposure to builder functions and conversion to UnicodeSet
Implementations
impl UnicodeSetBuilder
[src]
impl UnicodeSetBuilder
[src]pub const fn new() -> UnicodeSetBuilder
[src]
Returns empty UnicodeSetBuilder
pub fn build(self) -> UnicodeSet
[src]
Returns a UnicodeSet
and consumes the UnicodeSetBuilder
pub fn add_char(&mut self, c: char)
[src]
Add the character to the UnicodeSetBuilder
Examples
use icu::uniset::UnicodeSetBuilder; let mut builder = UnicodeSetBuilder::new(); builder.add_char('a'); let check = builder.build(); assert_eq!(check.iter_chars().next(), Some('a'));
pub fn add_u32(&mut self, c: u32)
[src]
Add the code point value to the UnicodeSetBuilder
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::uniset::UnicodeSetBuilder; let mut builder = UnicodeSetBuilder::new(); builder.add_u32(65); let check = builder.build(); assert_eq!(check.contains_u32(65), true);
pub fn add_range(&mut self, range: &impl RangeBounds<char>)
[src]
Add the range of characters to the UnicodeSetBuilder
Examples
use icu::uniset::UnicodeSetBuilder; let mut builder = UnicodeSetBuilder::new(); builder.add_range(&('A'..='Z')); let check = builder.build(); assert_eq!(check.iter_chars().next(), Some('A'));
pub fn add_set(&mut self, set: &UnicodeSet)
[src]
Add the UnicodeSet
reference to the UnicodeSetBuilder
Examples
use icu::uniset::{UnicodeSet, UnicodeSetBuilder}; let mut builder = UnicodeSetBuilder::new(); let set = UnicodeSet::from_inversion_list(vec![65, 76]).unwrap(); builder.add_set(&set); let check = builder.build(); assert_eq!(check.iter_chars().next(), Some('A'));
pub fn remove_char(&mut self, c: char)
[src]
Remove the character from the UnicodeSetBuilder
Examples
use icu::uniset::UnicodeSetBuilder; let mut builder = UnicodeSetBuilder::new(); builder.add_range(&('A'..='Z')); builder.remove_char('A'); let check = builder.build(); assert_eq!(check.iter_chars().next(), Some('B'));
pub fn remove_range(&mut self, range: &impl RangeBounds<char>)
[src]
Remove the range of characters from the UnicodeSetBuilder
Examples
use icu::uniset::UnicodeSetBuilder; let mut builder = UnicodeSetBuilder::new(); builder.add_range(&('A'..='Z')); builder.remove_range(&('A'..='C')); let check = builder.build(); assert_eq!(check.iter_chars().next(), Some('D'));
pub fn remove_set(&mut self, set: &UnicodeSet)
[src]
Remove the UnicodeSet
from the UnicodeSetBuilder
Examples
use icu::uniset::{UnicodeSet, UnicodeSetBuilder}; let mut builder = UnicodeSetBuilder::new(); let set = UnicodeSet::from_inversion_list(vec![65, 70]).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'));
pub fn retain_char(&mut self, c: char)
[src]
Retain the specified character in the UnicodeSetBuilder
if it exists
Examples
use icu::uniset::UnicodeSetBuilder; let mut builder = UnicodeSetBuilder::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);
pub fn retain_range(&mut self, range: &impl RangeBounds<char>)
[src]
Retain the range of characters located within the UnicodeSetBuilder
Examples
use icu::uniset::UnicodeSetBuilder; let mut builder = UnicodeSetBuilder::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);
pub fn retain_set(&mut self, set: &UnicodeSet)
[src]
Retain the elements in the specified set within the UnicodeSetBuilder
Examples
use icu::uniset::{UnicodeSetBuilder, UnicodeSet}; let mut builder = UnicodeSetBuilder::new(); let set = UnicodeSet::from_inversion_list(vec![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'));
pub fn complement(&mut self)
[src]
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::uniset::{UnicodeSetBuilder, UnicodeSet}; let mut builder = UnicodeSetBuilder::new(); let set = UnicodeSet::from_inversion_list(vec![0, 65, 70, (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'));
pub fn complement_char(&mut self, c: char)
[src]
Complements the character in the builder, adding it if not in the builder, and removing it otherwise.
Examples
use icu::uniset::UnicodeSetBuilder; let mut builder = UnicodeSetBuilder::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'));
pub fn complement_range(&mut self, range: &impl RangeBounds<char>)
[src]
Complements the range in the builder, adding any elements in the range if not in the builder, and removing them otherwise.
Examples
use icu::uniset::UnicodeSetBuilder; let mut builder = UnicodeSetBuilder::new(); builder.add_range(&('A'..='D')); builder.complement_range(&('C'..='F')); let check = builder.build(); assert!(check.contains('F')); assert!(!check.contains('C'));
pub fn complement_set(&mut self, set: &UnicodeSet)
[src]
Complements the set in the builder, adding any elements in the set if not in the builder, and removing them otherwise.
Examples
use icu::uniset::{UnicodeSetBuilder, UnicodeSet}; let mut builder = UnicodeSetBuilder::new(); let set = UnicodeSet::from_inversion_list(vec![65, 70, 75, 90]).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')); // 78
pub fn is_empty(&mut self) -> bool
[src]
Returns whether the build is empty.
Examples
use icu::uniset::{UnicodeSetBuilder, UnicodeSet}; let mut builder = UnicodeSetBuilder::new(); let check = builder.build(); assert!(check.is_empty());
Trait Implementations
impl Default for UnicodeSetBuilder
[src]
impl Default for UnicodeSetBuilder
[src]pub fn default() -> UnicodeSetBuilder
[src]
Auto Trait Implementations
impl RefUnwindSafe for UnicodeSetBuilder
impl RefUnwindSafe for UnicodeSetBuilder
impl Send for UnicodeSetBuilder
impl Send for UnicodeSetBuilder
impl Sync for UnicodeSetBuilder
impl Sync for UnicodeSetBuilder
impl Unpin for UnicodeSetBuilder
impl Unpin for UnicodeSetBuilder
impl UnwindSafe for UnicodeSetBuilder
impl UnwindSafe for UnicodeSetBuilder