pub struct RawOsString(/* private fields */);Expand description
A container for owned byte strings converted by this crate.
For more information, see RawOsStr.
Implementations§
Source§impl RawOsString
impl RawOsString
Sourcepub fn new<S>(string: S) -> Self
pub fn new<S>(string: S) -> Self
Wraps a platform-native string, without copying or encoding conversion.
§Examples
use std::env;
use os_str_bytes::RawOsString;
let os_string = env::current_exe()?.into_os_string();
println!("{:?}", RawOsString::new(os_string));Sourcepub fn from_string(string: String) -> Self
👎Deprecated since 7.0.0: use new instead
pub fn from_string(string: String) -> Self
new insteadWraps a string, without copying or encoding conversion.
§Examples
use os_str_bytes::RawOsString;
let string = "foobar".to_owned();
let raw = RawOsString::from_string(string.clone());
assert_eq!(string, raw);Sourcepub unsafe fn from_encoded_vec_unchecked(string: Vec<u8>) -> Self
pub unsafe fn from_encoded_vec_unchecked(string: Vec<u8>) -> Self
Equivalent to OsString::from_encoded_bytes_unchecked.
§Examples
use std::env;
use os_str_bytes::RawOsString;
let os_string = env::current_exe()?.into_os_string();
let raw = RawOsString::new(os_string);
let raw_bytes = raw.clone().into_encoded_vec();
assert_eq!(raw, unsafe {
RawOsString::from_encoded_vec_unchecked(raw_bytes)
});Sourcepub fn assert_from_raw_vec(string: Vec<u8>) -> Self
Available on crate feature conversions only.
pub fn assert_from_raw_vec(string: Vec<u8>) -> Self
conversions only.Equivalent to OsStringBytes::assert_from_raw_vec.
§Examples
use std::env;
use os_str_bytes::RawOsString;
let os_string = env::current_exe()?.into_os_string();
let raw = RawOsString::new(os_string);
let raw_bytes = raw.clone().into_raw_vec();
assert_eq!(raw, RawOsString::assert_from_raw_vec(raw_bytes));Sourcepub fn from_raw_vec(string: Vec<u8>) -> Result<Self, EncodingError>
Available on crate feature checked_conversions only.
pub fn from_raw_vec(string: Vec<u8>) -> Result<Self, EncodingError>
checked_conversions only.Equivalent to OsStringBytes::from_raw_vec.
§Examples
use std::env;
use os_str_bytes::RawOsString;
let os_string = env::current_exe()?.into_os_string();
let raw = RawOsString::new(os_string);
let raw_bytes = raw.clone().into_raw_vec();
assert_eq!(Ok(raw), RawOsString::from_raw_vec(raw_bytes));Sourcepub unsafe fn from_raw_vec_unchecked(string: Vec<u8>) -> Self
👎Deprecated since 6.6.0: use assert_from_raw_vec or
from_encoded_vec_unchecked insteadAvailable on crate feature conversions only.
pub unsafe fn from_raw_vec_unchecked(string: Vec<u8>) -> Self
assert_from_raw_vec or
from_encoded_vec_unchecked insteadconversions only.Converts and wraps a byte string.
§Safety
The string must be valid for the unspecified encoding used by this crate.
§Examples
use std::env;
use os_str_bytes::RawOsString;
let os_string = env::current_exe()?.into_os_string();
let raw = RawOsString::new(os_string);
let raw_bytes = raw.clone().into_raw_vec();
assert_eq!(raw, unsafe {
RawOsString::from_raw_vec_unchecked(raw_bytes)
});Sourcepub fn clear(&mut self)
pub fn clear(&mut self)
Equivalent to String::clear.
§Examples
use std::env;
use os_str_bytes::RawOsString;
let os_string = env::current_exe()?.into_os_string();
let mut raw = RawOsString::new(os_string);
raw.clear();
assert!(raw.is_empty());Sourcepub fn into_box(self) -> Box<RawOsStr>
pub fn into_box(self) -> Box<RawOsStr>
Equivalent to String::into_boxed_str.
§Examples
use os_str_bytes::RawOsString;
let string = "foobar".to_owned();
let raw = RawOsString::new(string.clone());
assert_eq!(string, *raw.into_box());Sourcepub fn into_encoded_vec(self) -> Vec<u8> ⓘ
pub fn into_encoded_vec(self) -> Vec<u8> ⓘ
Equivalent to OsString::into_encoded_bytes.
The returned string will not use the unspecified encoding. It can
only be passed to methods accepting the internal encoding of OsStr,
such as from_encoded_vec_unchecked.
§Examples
use os_str_bytes::RawOsString;
let string = "foobar".to_owned();
let raw = RawOsString::new(string.clone());
assert_eq!(string.into_bytes(), raw.into_encoded_vec());Sourcepub fn into_os_string(self) -> OsString
pub fn into_os_string(self) -> OsString
Converts this representation back to a platform-native string, without copying or encoding conversion.
§Examples
use std::env;
use os_str_bytes::RawOsString;
let os_string = env::current_exe()?.into_os_string();
let raw = RawOsString::new(os_string.clone());
assert_eq!(os_string, raw.into_os_string());Sourcepub fn into_raw_vec(self) -> Vec<u8> ⓘ
Available on crate feature conversions only.
pub fn into_raw_vec(self) -> Vec<u8> ⓘ
conversions only.Equivalent to OsStringBytes::into_raw_vec.
§Examples
use os_str_bytes::RawOsString;
let string = "foobar".to_owned();
let raw = RawOsString::new(string.clone());
assert_eq!(string.into_bytes(), raw.into_raw_vec());Sourcepub fn into_string(self) -> Result<String, Self>
pub fn into_string(self) -> Result<String, Self>
Equivalent to OsString::into_string.
§Examples
use os_str_bytes::RawOsString;
let string = "foobar".to_owned();
let raw = RawOsString::new(string.clone());
assert_eq!(Ok(string), raw.into_string());Sourcepub fn shrink_to_fit(&mut self)
pub fn shrink_to_fit(&mut self)
Equivalent to String::shrink_to_fit.
§Examples
use os_str_bytes::RawOsString;
let string = "foobar".to_owned();
let mut raw = RawOsString::new(string.clone());
raw.shrink_to_fit();
assert_eq!(string, raw);Sourcepub fn split_off(&mut self, at: usize) -> Self
pub fn split_off(&mut self, at: usize) -> Self
Equivalent to String::split_off.
§Panics
Panics if the index is not a valid boundary.
§Examples
use os_str_bytes::RawOsString;
let mut raw = RawOsString::new("foobar".to_owned());
assert_eq!("bar", raw.split_off(3));
assert_eq!("foo", raw);Sourcepub fn truncate(&mut self, new_len: usize)
pub fn truncate(&mut self, new_len: usize)
Equivalent to String::truncate.
§Panics
Panics if the index is not a valid boundary.
§Examples
use os_str_bytes::RawOsString;
let mut raw = RawOsString::new("foobar".to_owned());
raw.truncate(3);
assert_eq!("foo", raw);Methods from Deref<Target = RawOsStr>§
Sourcepub fn as_encoded_bytes(&self) -> &[u8] ⓘ
pub fn as_encoded_bytes(&self) -> &[u8] ⓘ
Equivalent to OsStr::as_encoded_bytes.
The returned string will not use the unspecified encoding. It can
only be passed to methods accepting the internal encoding of OsStr,
such as from_encoded_bytes_unchecked.
§Examples
use os_str_bytes::RawOsStr;
let string = "foobar";
let raw = RawOsStr::new(string);
assert_eq!(string.as_bytes(), raw.as_encoded_bytes());Sourcepub fn as_os_str(&self) -> &OsStr
pub fn as_os_str(&self) -> &OsStr
Converts this representation back to a platform-native string, without copying or encoding conversion.
§Examples
use std::env;
use os_str_bytes::RawOsStr;
let os_string = env::current_exe()?.into_os_string();
let raw = RawOsStr::new(&os_string);
assert_eq!(os_string, raw.as_os_str());Sourcepub fn contains<P>(&self, pat: P) -> boolwhere
P: Pattern,
pub fn contains<P>(&self, pat: P) -> boolwhere
P: Pattern,
Equivalent to OsStrBytesExt::contains.
§Examples
use os_str_bytes::RawOsStr;
let raw = RawOsStr::new("foobar");
assert!(raw.contains("oo"));
assert!(!raw.contains("of"));Sourcepub fn ends_with<P>(&self, pat: P) -> boolwhere
P: Pattern,
pub fn ends_with<P>(&self, pat: P) -> boolwhere
P: Pattern,
Equivalent to OsStrBytesExt::ends_with.
§Examples
use os_str_bytes::RawOsStr;
let raw = RawOsStr::new("foobar");
assert!(raw.ends_with("bar"));
assert!(!raw.ends_with("foo"));Sourcepub fn ends_with_os(&self, pat: &Self) -> bool
Available on crate feature conversions only.
pub fn ends_with_os(&self, pat: &Self) -> bool
conversions only.Equivalent to OsStrBytesExt::ends_with_os.
§Examples
use os_str_bytes::RawOsStr;
let raw = RawOsStr::new("foobar");
assert!(raw.ends_with_os(RawOsStr::new("bar")));
assert!(!raw.ends_with_os(RawOsStr::new("foo")));Sourcepub fn find<P>(&self, pat: P) -> Option<usize>where
P: Pattern,
pub fn find<P>(&self, pat: P) -> Option<usize>where
P: Pattern,
Equivalent to OsStrBytesExt::find.
§Examples
use os_str_bytes::RawOsStr;
let raw = RawOsStr::new("foobar");
assert_eq!(Some(1), raw.find("o"));
assert_eq!(None, raw.find("of"));Sourcepub unsafe fn get_unchecked<I>(&self, index: I) -> &Selfwhere
I: SliceIndex,
pub unsafe fn get_unchecked<I>(&self, index: I) -> &Selfwhere
I: SliceIndex,
Equivalent to OsStrBytesExt::get_unchecked.
§Examples
use os_str_bytes::RawOsStr;
let raw = RawOsStr::new("foobar");
assert_eq!("foo", unsafe { raw.get_unchecked(..3) });
assert_eq!("bar", unsafe { raw.get_unchecked(3..) });Sourcepub fn is_empty(&self) -> bool
pub fn is_empty(&self) -> bool
Equivalent to OsStr::is_empty.
§Examples
use os_str_bytes::RawOsStr;
assert!(RawOsStr::new("").is_empty());
assert!(!RawOsStr::new("foobar").is_empty());Sourcepub fn repeat(&self, n: usize) -> RawOsString
pub fn repeat(&self, n: usize) -> RawOsString
Equivalent to OsStrBytesExt::repeat.
§Examples
use os_str_bytes::RawOsStr;
let raw = RawOsStr::new("foo");
assert_eq!("foofoofoo", raw.repeat(3));Sourcepub fn rfind<P>(&self, pat: P) -> Option<usize>where
P: Pattern,
pub fn rfind<P>(&self, pat: P) -> Option<usize>where
P: Pattern,
Equivalent to OsStrBytesExt::rfind.
§Examples
use os_str_bytes::RawOsStr;
let raw = RawOsStr::new("foobar");
assert_eq!(Some(2), raw.rfind("o"));
assert_eq!(None, raw.rfind("of"));Sourcepub fn rsplit<P>(&self, pat: P) -> RawRSplit<'_, P> ⓘwhere
P: Pattern,
pub fn rsplit<P>(&self, pat: P) -> RawRSplit<'_, P> ⓘwhere
P: Pattern,
Equivalent to OsStrBytesExt::rsplit.
§Examples
use os_str_bytes::RawOsStr;
let raw = RawOsStr::new("foobar");
assert!(raw.rsplit("o").eq(["bar", "", "f"]));Sourcepub fn rsplit_once<P>(&self, pat: P) -> Option<(&Self, &Self)>where
P: Pattern,
pub fn rsplit_once<P>(&self, pat: P) -> Option<(&Self, &Self)>where
P: Pattern,
Equivalent to OsStrBytesExt::rsplit_once.
§Examples
use os_str_bytes::RawOsStr;
let raw = RawOsStr::new("foobar");
assert_eq!(
Some((RawOsStr::new("fo"), RawOsStr::new("bar"))),
raw.rsplit_once("o"),
);
assert_eq!(None, raw.rsplit_once("of"));Sourcepub fn split<P>(&self, pat: P) -> RawSplit<'_, P> ⓘwhere
P: Pattern,
pub fn split<P>(&self, pat: P) -> RawSplit<'_, P> ⓘwhere
P: Pattern,
Equivalent to OsStrBytesExt::split.
§Examples
use os_str_bytes::RawOsStr;
let raw = RawOsStr::new("foobar");
assert!(raw.split("o").eq(["f", "", "bar"]));Sourcepub fn split_at(&self, mid: usize) -> (&Self, &Self)
pub fn split_at(&self, mid: usize) -> (&Self, &Self)
Equivalent to OsStrBytesExt::split_at.
§Examples
use os_str_bytes::RawOsStr;
let raw = RawOsStr::new("foobar");
assert_eq!(
(RawOsStr::new("fo"), RawOsStr::new("obar")),
raw.split_at(2),
);Sourcepub fn split_once<P>(&self, pat: P) -> Option<(&Self, &Self)>where
P: Pattern,
pub fn split_once<P>(&self, pat: P) -> Option<(&Self, &Self)>where
P: Pattern,
Equivalent to OsStrBytesExt::split_once.
§Examples
use os_str_bytes::RawOsStr;
let raw = RawOsStr::new("foobar");
assert_eq!(
Some((RawOsStr::new("f"), RawOsStr::new("obar"))),
raw.split_once("o"),
);
assert_eq!(None, raw.split_once("of"));Sourcepub fn starts_with<P>(&self, pat: P) -> boolwhere
P: Pattern,
pub fn starts_with<P>(&self, pat: P) -> boolwhere
P: Pattern,
Equivalent to OsStrBytesExt::starts_with.
§Examples
use os_str_bytes::RawOsStr;
let raw = RawOsStr::new("foobar");
assert!(raw.starts_with("foo"));
assert!(!raw.starts_with("bar"));Sourcepub fn starts_with_os(&self, pat: &Self) -> bool
Available on crate feature conversions only.
pub fn starts_with_os(&self, pat: &Self) -> bool
conversions only.Equivalent to OsStrBytesExt::starts_with_os.
§Examples
use os_str_bytes::RawOsStr;
let raw = RawOsStr::new("foobar");
assert!(raw.starts_with_os(RawOsStr::new("foo")));
assert!(!raw.starts_with_os(RawOsStr::new("bar")));Sourcepub fn strip_prefix<P>(&self, pat: P) -> Option<&Self>where
P: Pattern,
pub fn strip_prefix<P>(&self, pat: P) -> Option<&Self>where
P: Pattern,
Equivalent to OsStrBytesExt::strip_prefix.
§Examples
use os_str_bytes::RawOsStr;
let raw = RawOsStr::new("111foo1bar111");
assert_eq!(Some(RawOsStr::new("11foo1bar111")), raw.strip_prefix("1"));
assert_eq!(None, raw.strip_prefix("o"));Sourcepub fn strip_suffix<P>(&self, pat: P) -> Option<&Self>where
P: Pattern,
pub fn strip_suffix<P>(&self, pat: P) -> Option<&Self>where
P: Pattern,
Equivalent to OsStrBytesExt::strip_suffix.
§Examples
use os_str_bytes::RawOsStr;
let raw = RawOsStr::new("111foo1bar111");
assert_eq!(Some(RawOsStr::new("111foo1bar11")), raw.strip_suffix("1"));
assert_eq!(None, raw.strip_suffix("o"));Sourcepub fn to_os_str(&self) -> Cow<'_, OsStr>
👎Deprecated since 6.6.0: use as_os_str instead
pub fn to_os_str(&self) -> Cow<'_, OsStr>
as_os_str insteadConverts this representation back to a platform-native string.
When possible, use RawOsStrCow::into_os_str for a more efficient
conversion on some platforms.
§Examples
use std::env;
use os_str_bytes::RawOsStr;
let os_string = env::current_exe()?.into_os_string();
let raw = RawOsStr::new(&os_string);
assert_eq!(os_string, raw.to_os_str());Sourcepub fn to_raw_bytes(&self) -> Cow<'_, [u8]>
Available on crate feature conversions only.
pub fn to_raw_bytes(&self) -> Cow<'_, [u8]>
conversions only.Equivalent to OsStrBytes::to_raw_bytes.
§Examples
use os_str_bytes::RawOsStr;
let string = "foobar";
let raw = RawOsStr::new(string);
assert_eq!(string.as_bytes(), &*raw.to_raw_bytes());Sourcepub fn to_str(&self) -> Option<&str>
pub fn to_str(&self) -> Option<&str>
Equivalent to OsStr::to_str.
§Examples
use os_str_bytes::RawOsStr;
let string = "foobar";
let raw = RawOsStr::new(string);
assert_eq!(Some(string), raw.to_str());Sourcepub fn to_str_lossy(&self) -> Cow<'_, str>
pub fn to_str_lossy(&self) -> Cow<'_, str>
Equivalent to OsStr::to_string_lossy.
§Examples
use std::env;
use os_str_bytes::RawOsStr;
let os_string = env::current_exe()?.into_os_string();
let raw = RawOsStr::new(&os_string);
println!("{}", raw.to_str_lossy());Sourcepub fn trim_end_matches<P>(&self, pat: P) -> &Selfwhere
P: Pattern,
pub fn trim_end_matches<P>(&self, pat: P) -> &Selfwhere
P: Pattern,
Equivalent to OsStrBytesExt::trim_end_matches.
§Examples
use os_str_bytes::RawOsStr;
let raw = RawOsStr::new("111foo1bar111");
assert_eq!("111foo1bar", raw.trim_end_matches("1"));
assert_eq!("111foo1bar111", raw.trim_end_matches("o"));Sourcepub fn trim_matches<P>(&self, pat: P) -> &Selfwhere
P: Pattern,
pub fn trim_matches<P>(&self, pat: P) -> &Selfwhere
P: Pattern,
Equivalent to OsStrBytesExt::trim_matches.
§Examples
use os_str_bytes::RawOsStr;
let raw = RawOsStr::new("111foo1bar111");
assert_eq!("foo1bar", raw.trim_matches("1"));
assert_eq!("111foo1bar111", raw.trim_matches("o"));Sourcepub fn trim_start_matches<P>(&self, pat: P) -> &Selfwhere
P: Pattern,
pub fn trim_start_matches<P>(&self, pat: P) -> &Selfwhere
P: Pattern,
Equivalent to OsStrBytesExt::trim_start_matches.
§Examples
use os_str_bytes::RawOsStr;
let raw = RawOsStr::new("111foo1bar111");
assert_eq!("foo1bar111", raw.trim_start_matches("1"));
assert_eq!("111foo1bar111", raw.trim_start_matches("o"));Sourcepub fn utf8_chunks(&self) -> Utf8Chunks<'_> ⓘ
pub fn utf8_chunks(&self) -> Utf8Chunks<'_> ⓘ
Equivalent to OsStrBytesExt::utf8_chunks.
§Examples
use os_str_bytes::RawOsStr;
fn to_str_lossy<F>(raw: &RawOsStr, mut push: F)
where
F: FnMut(&str),
{
for (invalid, string) in raw.utf8_chunks() {
if !invalid.as_os_str().is_empty() {
push("\u{FFFD}");
}
push(string);
}
}Trait Implementations§
Source§impl AsRef<OsStr> for RawOsString
impl AsRef<OsStr> for RawOsString
Source§impl AsRef<RawOsStr> for RawOsString
impl AsRef<RawOsStr> for RawOsString
Source§impl Borrow<RawOsStr> for RawOsString
impl Borrow<RawOsStr> for RawOsString
Source§impl Clone for RawOsString
impl Clone for RawOsString
Source§fn clone(&self) -> RawOsString
fn clone(&self) -> RawOsString
1.0.0 · Source§fn clone_from(&mut self, source: &Self)
fn clone_from(&mut self, source: &Self)
source. Read more