1use crate::rust_slice::RustSlice; 2use core::mem::MaybeUninit; 3use core::ptr::{self, NonNull}; 4 5#[export_name = "cxxbridge1$slice$new"] 6unsafe extern "C" fn slice_new(this: &mut MaybeUninit<RustSlice>, ptr: NonNull<()>, len: usize) { 7 let this = this.as_mut_ptr(); 8 let rust_slice = RustSlice::from_raw_parts(ptr, len); 9 unsafe { ptr::write(this, rust_slice) } 10} 11 12#[export_name = "cxxbridge1$slice$ptr"] 13unsafe extern "C" fn slice_ptr(this: &RustSlice) -> NonNull<()> { 14 this.as_non_null_ptr() 15} 16 17#[export_name = "cxxbridge1$slice$len"] 18unsafe extern "C" fn slice_len(this: &RustSlice) -> usize { 19 this.len() 20} 21