133d722a9Sopenharmony_ci#[cfg(feature = "alloc")] 233d722a9Sopenharmony_ciuse alloc::string::String; 333d722a9Sopenharmony_ciuse core::mem::MaybeUninit; 433d722a9Sopenharmony_ciuse core::ptr; 533d722a9Sopenharmony_ciuse core::slice; 633d722a9Sopenharmony_ciuse core::str; 733d722a9Sopenharmony_ci 833d722a9Sopenharmony_ci#[export_name = "cxxbridge1$str$new"] 933d722a9Sopenharmony_ciunsafe extern "C" fn str_new(this: &mut MaybeUninit<&str>) { 1033d722a9Sopenharmony_ci let this = this.as_mut_ptr(); 1133d722a9Sopenharmony_ci unsafe { ptr::write(this, "") } 1233d722a9Sopenharmony_ci} 1333d722a9Sopenharmony_ci 1433d722a9Sopenharmony_ci#[cfg(feature = "alloc")] 1533d722a9Sopenharmony_ci#[export_name = "cxxbridge1$str$ref"] 1633d722a9Sopenharmony_ciunsafe extern "C" fn str_ref<'a>(this: &mut MaybeUninit<&'a str>, string: &'a String) { 1733d722a9Sopenharmony_ci let this = this.as_mut_ptr(); 1833d722a9Sopenharmony_ci let s = string.as_str(); 1933d722a9Sopenharmony_ci unsafe { ptr::write(this, s) } 2033d722a9Sopenharmony_ci} 2133d722a9Sopenharmony_ci 2233d722a9Sopenharmony_ci#[export_name = "cxxbridge1$str$from"] 2333d722a9Sopenharmony_ciunsafe extern "C" fn str_from(this: &mut MaybeUninit<&str>, ptr: *const u8, len: usize) -> bool { 2433d722a9Sopenharmony_ci let slice = unsafe { slice::from_raw_parts(ptr, len) }; 2533d722a9Sopenharmony_ci match str::from_utf8(slice) { 2633d722a9Sopenharmony_ci Ok(s) => { 2733d722a9Sopenharmony_ci let this = this.as_mut_ptr(); 2833d722a9Sopenharmony_ci unsafe { ptr::write(this, s) } 2933d722a9Sopenharmony_ci true 3033d722a9Sopenharmony_ci } 3133d722a9Sopenharmony_ci Err(_) => false, 3233d722a9Sopenharmony_ci } 3333d722a9Sopenharmony_ci} 3433d722a9Sopenharmony_ci 3533d722a9Sopenharmony_ci#[export_name = "cxxbridge1$str$ptr"] 3633d722a9Sopenharmony_ciunsafe extern "C" fn str_ptr(this: &&str) -> *const u8 { 3733d722a9Sopenharmony_ci this.as_ptr() 3833d722a9Sopenharmony_ci} 3933d722a9Sopenharmony_ci 4033d722a9Sopenharmony_ci#[export_name = "cxxbridge1$str$len"] 4133d722a9Sopenharmony_ciunsafe extern "C" fn str_len(this: &&str) -> usize { 4233d722a9Sopenharmony_ci this.len() 4333d722a9Sopenharmony_ci} 44