Skip to main content

Char16TrieCursor

Struct Char16TrieCursor 

Source
pub struct Char16TrieCursor<'a> { /* private fields */ }
Expand description

A cursor into a Char16Trie, useful for stepwise lookup.

Implementations§

Source§

impl<'a> Char16TrieCursor<'a>

Source

pub fn new(trie: &'a ZeroSlice<u16>) -> Self

Returns a new Char16TrieCursor backed by borrowed data for the trie array.

Source

pub fn step(&mut self, c: char)

Steps the cursor one char into the trie.

§Examples
use icu::collections::char16trie::Char16Trie;
use zerovec::ZeroVec;

// A Char16Trie containing the ASCII characters 'a' and 'ab'.
let trie_data = [48, 97, 176, 98, 32868];
let trie = Char16Trie::new(ZeroVec::from_slice_or_alloc(&trie_data));

let mut cursor = trie.cursor();
cursor.step('a');
assert_eq!(cursor.value(), Some(1));
assert!(!cursor.is_empty());
cursor.step('b');
assert_eq!(cursor.value(), Some(100));
assert!(cursor.is_empty());
cursor.step('c');
assert_eq!(cursor.value(), None);
assert!(cursor.is_empty());
Source

pub fn step32(&mut self, c: u32)

Steps the cursor one code point (up to 0x10ffff) into the trie.

§Examples
use icu::collections::char16trie::Char16Trie;
use zerovec::ZeroVec;

// A Char16Trie containing the ASCII characters 'a' and 'ab'.
let trie_data = [48, 97, 176, 98, 32868];
let trie = Char16Trie::new(ZeroVec::from_slice_or_alloc(&trie_data));

let mut cursor = trie.cursor();
cursor.step32('a' as u32);
assert_eq!(cursor.value(), Some(1));
assert!(!cursor.is_empty());
cursor.step32('b' as u32);
assert_eq!(cursor.value(), Some(100));
assert!(cursor.is_empty());
cursor.step32('c' as u32);
assert_eq!(cursor.value(), None);
assert!(cursor.is_empty());
Source

pub fn step16(&mut self, c: u16)

Steps the cursor one 16-bit code unit into the trie.

§Examples
use icu::collections::char16trie::Char16Trie;
use zerovec::ZeroVec;

// A Char16Trie containing the ASCII characters 'a' and 'ab'.
let trie_data = [48, 97, 176, 98, 32868];
let trie = Char16Trie::new(ZeroVec::from_slice_or_alloc(&trie_data));

let mut cursor = trie.cursor();
cursor.step16('a' as u16);
assert_eq!(cursor.value(), Some(1));
assert!(!cursor.is_empty());
cursor.step16('b' as u16);
assert_eq!(cursor.value(), Some(100));
assert!(cursor.is_empty());
cursor.step16('c' as u16);
assert_eq!(cursor.value(), None);
assert!(cursor.is_empty());
Source

pub fn value(&self) -> Option<i32>

Returns the value at the current position.

Source

pub fn is_empty(&self) -> bool

Checks whether the cursor points to an empty trie (i.e., no further units can be matched from the current position).

Use this to determine when to stop iterating.

Trait Implementations§

Source§

impl<'a> Clone for Char16TrieCursor<'a>

Source§

fn clone(&self) -> Self

Returns a duplicate of the value. Read more
1.0.0 (const: unstable) · Source§

fn clone_from(&mut self, source: &Self)

Performs copy-assignment from source. Read more
Source§

impl<'a> Debug for Char16TrieCursor<'a>

Source§

fn fmt(&self, f: &mut Formatter<'_>) -> Result

Formats the value using the given formatter. Read more
Source§

impl Write for Char16TrieCursor<'_>

Source§

fn write_str(&mut self, s: &str) -> Result

Writes a string slice into this writer, returning whether the write succeeded. Read more
Source§

fn write_char(&mut self, c: char) -> Result

Writes a char into this writer, returning whether the write succeeded. Read more
1.0.0 · Source§

fn write_fmt(&mut self, args: Arguments<'_>) -> Result<(), Error>

Glue for usage of the write! macro with implementors of this trait. Read more

Auto Trait Implementations§

§

impl<'a> Freeze for Char16TrieCursor<'a>

§

impl<'a> RefUnwindSafe for Char16TrieCursor<'a>

§

impl<'a> Send for Char16TrieCursor<'a>

§

impl<'a> Sync for Char16TrieCursor<'a>

§

impl<'a> Unpin for Char16TrieCursor<'a>

§

impl<'a> UnsafeUnpin for Char16TrieCursor<'a>

§

impl<'a> UnwindSafe for Char16TrieCursor<'a>

Blanket Implementations§

Source§

impl<T> Any for T
where T: 'static + ?Sized,

Source§

fn type_id(&self) -> TypeId

Gets the TypeId of self. Read more
Source§

impl<T> Borrow<T> for T
where T: ?Sized,

Source§

fn borrow(&self) -> &T

Immutably borrows from an owned value. Read more
Source§

impl<T> BorrowMut<T> for T
where T: ?Sized,

Source§

fn borrow_mut(&mut self) -> &mut T

Mutably borrows from an owned value. Read more
Source§

impl<T> CloneToUninit for T
where T: Clone,

Source§

unsafe fn clone_to_uninit(&self, dest: *mut u8)

🔬This is a nightly-only experimental API. (clone_to_uninit)
Performs copy-assignment from self to dest. Read more
Source§

impl<T> From<T> for T

Source§

fn from(t: T) -> T

Returns the argument unchanged.

Source§

impl<T, U> Into<U> for T
where U: From<T>,

Source§

fn into(self) -> U

Calls U::from(self).

That is, this conversion is whatever the implementation of From<T> for U chooses to do.

Source§

impl<T> ToOwned for T
where T: Clone,

Source§

type Owned = T

The resulting type after obtaining ownership.
Source§

fn to_owned(&self) -> T

Creates owned data from borrowed data, usually by cloning. Read more
Source§

fn clone_into(&self, target: &mut T)

Uses borrowed data to replace owned data, usually by cloning. Read more
Source§

impl<T, U> TryFrom<U> for T
where U: Into<T>,

Source§

type Error = !

The type returned in the event of a conversion error.
Source§

fn try_from(value: U) -> Result<T, !>

Performs the conversion.
Source§

impl<T, U> TryInto<U> for T
where U: TryFrom<T>,

Source§

type Error = <U as TryFrom<T>>::Error

The type returned in the event of a conversion error.
Source§

fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>

Performs the conversion.