#unicode-characters #u8 #lazy-evaluation #iterate #slice #lazily #iter

lazy-char-iter

Lazily iterate over Unicode characters from a u8 slice in Rust

1 unstable release

0.1.0 Feb 1, 2023

#1773 in Text processing

Apache-2.0

37KB
696 lines

lazy-char-iter

Lazily iterate over Unicode characters from a u8 slice in Rust.

This crate provides a .chars() method for Vec<u8> and &[u8] types, allowing you to iterate over the characters in a byte vector or slice without decoding each character preemptively.

In typical usage, you use the LazyCharIterExt trait (implemented for Vec<u8> and &[u8]) and call the .chars() method on those types:

use lazy_char_iter::LazyCharIterExt;
let bread_str: &str = "brød";
let bread_bytes: &[u8] = bread_str.as_bytes();
let mut char_iter = bread_bytes.chars();
assert_eq!(char_iter.next(), Some(Ok('b')));

lib.rs:

This crate provides a .chars() method for Vec<u8> and &[u8] types, allowing you to iterate over the characters in a byte vector or slice without decoding each character preemptively.

In typical usage, you use the CharIterExt trait (implemented for Vec<u8> and &[u8]) and call the .chars() method on those types:

use lazy_char_iter::LazyCharIterExt;

let bread_str: &str = "brød";
let bread_bytes: &[u8] = bread_str.as_bytes();
let mut char_iter = bread_bytes.chars();
assert_eq!(char_iter.next(), Some(Ok('b')));

No runtime deps