added useful string conversions in rust
parent
aca8ca5f54
commit
f6f8deac20
@ -0,0 +1,45 @@
|
||||
let s: String = ...
|
||||
let st: &str = ...
|
||||
let u: &[u8] = ...
|
||||
let b: [u8; 3] = b"foo"
|
||||
let v: Vec<u8> = ...
|
||||
let os: OsString = ...
|
||||
let ost: OsStr = ...
|
||||
|
||||
From To Use Comment
|
||||
---- -- --- -------
|
||||
&str -> String String::from(st)
|
||||
&str -> &[u8] st.as_bytes()
|
||||
&str -> Vec<u8> st.as_bytes().to_owned() via &[u8]
|
||||
&str -> &OsStr OsStr::new(st)
|
||||
|
||||
String -> &str &s alt. s.as_str()
|
||||
String -> &[u8] s.as_bytes()
|
||||
String -> Vec<u8> s.into_bytes()
|
||||
String -> OsString OsString::from(s)
|
||||
|
||||
&[u8] -> &str str::from_utf8(u).unwrap()
|
||||
&[u8] -> String String::from_utf8(u).unwrap()
|
||||
&[u8] -> Vec<u8> u.to_owned()
|
||||
&[u8] -> &OsStr OsStr::from_bytes(u) use std::os::unix::ffi::OsStrExt;
|
||||
|
||||
[u8; 3] -> &[u8] &b[..] byte literal
|
||||
[u8; 3] -> &[u8] "foo".as_bytes() alternative via utf8 literal
|
||||
|
||||
Vec<u8> -> &str str::from_utf8(&v).unwrap() via &[u8]
|
||||
Vec<u8> -> String String::from_utf8(v)
|
||||
Vec<u8> -> &[u8] &v
|
||||
Vec<u8> -> OsString OsString::from_vec(v) use std::os::unix::ffi::OsStringExt;
|
||||
|
||||
&OsStr -> &str ost.to_str().unwrap()
|
||||
&OsStr -> String ost.to_os_string().into_string() via OsString
|
||||
.unwrap()
|
||||
&OsStr -> Cow<str> ost.to_string_lossy() Unicode replacement characters
|
||||
&OsStr -> OsString ost.to_os_string()
|
||||
&OsStr -> &[u8] ost.as_bytes() use std::os::unix::ffi::OsStringExt;
|
||||
|
||||
OsString -> String os.into_string().unwrap() returns original OsString on failure
|
||||
OsString -> &str os.to_str().unwrap()
|
||||
OsString -> &OsStr os.as_os_str()
|
||||
OsString -> Vec<u8> os.into_vec() use std::os::unix::ffi::OsStringExt;
|
||||
|
Loading…
Reference in New Issue