Function unicode::str::utf16_itemsExperimental [-]  [+] [src]

pub fn utf16_items<'a>(v: &'a [u16]) -> Utf16Items<'a>

Create an iterator over the UTF-16 encoded codepoints in v, returning invalid surrogates as LoneSurrogates.

Example

extern crate unicode; fn main() { use unicode::str::Utf16Item::{ScalarValue, LoneSurrogate}; // 𝄞mus<invalid>ic<invalid> let v = [0xD834, 0xDD1E, 0x006d, 0x0075, 0x0073, 0xDD1E, 0x0069, 0x0063, 0xD834]; assert_eq!(unicode::str::utf16_items(&v).collect::<Vec<_>>(), vec![ScalarValue('𝄞'), ScalarValue('m'), ScalarValue('u'), ScalarValue('s'), LoneSurrogate(0xDD1E), ScalarValue('i'), ScalarValue('c'), LoneSurrogate(0xD834)]); }
use unicode::str::Utf16Item::{ScalarValue, LoneSurrogate};

// 𝄞mus<invalid>ic<invalid>
let v = [0xD834, 0xDD1E, 0x006d, 0x0075,
         0x0073, 0xDD1E, 0x0069, 0x0063,
         0xD834];

assert_eq!(unicode::str::utf16_items(&v).collect::<Vec<_>>(),
           vec![ScalarValue('𝄞'),
                ScalarValue('m'), ScalarValue('u'), ScalarValue('s'),
                LoneSurrogate(0xDD1E),
                ScalarValue('i'), ScalarValue('c'),
                LoneSurrogate(0xD834)]);