1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32
use crate::*; use std::ffi::{CStr, CString}; /// Used for cheap conversion from into `&Ustr` pub trait AsUstr { /// Perform the conversion fn as_ustr(&self) -> &Ustr; } impl AsUstr for Ustr { fn as_ustr(&self) -> &Ustr { self } } impl AsUstr for Ustring { fn as_ustr(&self) -> &Ustr { self } } impl AsUstr for CStr { fn as_ustr(&self) -> &Ustr { Ustr::from_c_str(self) } } impl AsUstr for CString { fn as_ustr(&self) -> &Ustr { Ustr::from_c_str(self) } }