use jsbind::prelude::*;
fn main() {
emlite::init();
let s: JsString = "Hello".into();
Console::get().log(&[s.clone().into()]);
println!("UTF-8: {:?}", s.as_string());
let utf16_data: Vec<u16> = "Hello δΈη".encode_utf16().collect();
let s_utf16 = JsString::from_utf16(&utf16_data);
Console::get().log(&[s_utf16.clone().into()]);
println!("UTF-16 length: {}", s_utf16.length());
if let Some(extracted_utf16) = s_utf16.to_utf16() {
println!("Extracted UTF-16: {:?}", extracted_utf16);
if let Ok(rust_string) = JsString::utf16_to_string(&extracted_utf16) {
println!("Converted back to Rust String: {:?}", rust_string);
}
}
let s_via_utf16 = JsString::from_string_via_utf16("π Rust + JavaScript");
Console::get().log(&[s_via_utf16.clone().into()]);
if let Some(converted) = s_via_utf16.to_string_from_utf16() {
println!("Direct UTF-16 -> String conversion: {:?}", converted);
}
}