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(string: OsString) -> Self
pub fn new(string: OsString) -> Self
Converts a platform-native string into a representation that can be more easily manipulated.
For more information, see RawOsStr::new
.
§Nightly Notes
This method does not require 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
pub fn from_string(string: String) -> Self
Wraps a string, without copying or encoding conversion.
This method is much more efficient than RawOsString::new
, since the
encoding used by this crate is compatible with UTF-8.
§Examples
use os_str_bytes::RawOsString;
let string = "foobar".to_owned();
let raw = RawOsString::from_string(string.clone());
assert_eq!(string, raw);
Sourcepub fn assert_from_raw_vec(string: Vec<u8>) -> Self
👎Deprecated: enable the ‘conversions’ feature
pub fn assert_from_raw_vec(string: Vec<u8>) -> Self
Wraps a byte string, without copying or encoding conversion.
§Panics
Panics if the string is not 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, RawOsString::assert_from_raw_vec(raw_bytes));
Sourcepub unsafe fn from_raw_vec_unchecked(string: Vec<u8>) -> Self
👎Deprecated: enable the ‘conversions’ feature
pub unsafe fn from_raw_vec_unchecked(string: Vec<u8>) -> Self
Wraps a byte string, without copying or encoding conversion.
§Safety
The string must be valid for the unspecified encoding used by this crate.
§Nightly Notes
This method is deprecated. Use assert_from_raw_vec
or
from_encoded_vec_unchecked
instead.
§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::from_string(string.clone());
assert_eq!(string, *raw.into_box());
Sourcepub fn into_os_string(self) -> OsString
pub fn into_os_string(self) -> OsString
Converts this representation back to a platform-native string.
§Nightly Notes
This method does not require 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> ⓘ
👎Deprecated: enable the ‘conversions’ feature
pub fn into_raw_vec(self) -> Vec<u8> ⓘ
Returns the byte string stored by this container.
The returned string will use an unspecified encoding.
§Examples
use os_str_bytes::RawOsString;
let string = "foobar".to_owned();
let raw = RawOsString::from_string(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::from_string(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::from_string(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::from_string("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::from_string("foobar".to_owned());
raw.truncate(3);
assert_eq!("foo", raw);
Methods from Deref<Target = RawOsStr>§
Sourcepub fn as_raw_bytes(&self) -> &[u8] ⓘ
👎Deprecated: enable the ‘conversions’ feature
pub fn as_raw_bytes(&self) -> &[u8] ⓘ
Returns the byte string stored by this container.
The returned string will use an unspecified encoding.
§Examples
use os_str_bytes::RawOsStr;
let string = "foobar";
let raw = RawOsStr::from_str(string);
assert_eq!(string.as_bytes(), raw.as_raw_bytes());
Sourcepub fn contains<P>(&self, pat: P) -> boolwhere
P: Pattern,
pub fn contains<P>(&self, pat: P) -> boolwhere
P: Pattern,
Equivalent to str::contains
.
§Examples
use os_str_bytes::RawOsStr;
let raw = RawOsStr::from_str("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 str::ends_with
.
§Examples
use os_str_bytes::RawOsStr;
let raw = RawOsStr::from_str("foobar");
assert!(raw.ends_with("bar"));
assert!(!raw.ends_with("foo"));
Sourcepub fn ends_with_os(&self, pat: &Self) -> bool
👎Deprecated: enable the ‘conversions’ feature
pub fn ends_with_os(&self, pat: &Self) -> bool
Equivalent to str::ends_with
but accepts this type for the
pattern.
§Examples
use os_str_bytes::RawOsStr;
let raw = RawOsStr::from_str("foobar");
assert!(raw.ends_with_os(RawOsStr::from_str("bar")));
assert!(!raw.ends_with_os(RawOsStr::from_str("foo")));
Sourcepub fn is_empty(&self) -> bool
pub fn is_empty(&self) -> bool
Equivalent to str::is_empty
.
§Examples
use os_str_bytes::RawOsStr;
assert!(RawOsStr::from_str("").is_empty());
assert!(!RawOsStr::from_str("foobar").is_empty());
Sourcepub fn raw_len(&self) -> usize
👎Deprecated: enable the ‘conversions’ feature
pub fn raw_len(&self) -> usize
Returns the length of the byte string stored by this container.
Only the following assumptions can be made about the result:
- The length of any Unicode character is the length of its UTF-8
representation (i.e.,
char::len_utf8
). - Splitting a string at a UTF-8 boundary will return two strings with lengths that sum to the length of the original string.
This method may return a different result than would OsStr::len
when called on same string, since OsStr
uses an unspecified
encoding.
§Examples
use os_str_bytes::RawOsStr;
assert_eq!(6, RawOsStr::from_str("foobar").raw_len());
assert_eq!(0, RawOsStr::from_str("").raw_len());
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 str::rfind
.
§Examples
use os_str_bytes::RawOsStr;
let raw = RawOsStr::from_str("foobar");
assert_eq!(Some(2), raw.rfind("o"));
assert_eq!(None, raw.rfind("of"));
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 str::rsplit_once
.
§Examples
use os_str_bytes::RawOsStr;
let raw = RawOsStr::from_str("foobar");
assert_eq!(
Some((RawOsStr::from_str("fo"), RawOsStr::from_str("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 str::split
, but empty patterns are not accepted.
§Panics
Panics if the pattern is empty.
§Examples
use os_str_bytes::RawOsStr;
let raw = RawOsStr::from_str("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 str::split_at
.
§Panics
Panics if the index is not a valid boundary.
§Examples
use os_str_bytes::RawOsStr;
let raw = RawOsStr::from_str("foobar");
assert_eq!(
((RawOsStr::from_str("fo"), RawOsStr::from_str("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 str::split_once
.
§Examples
use os_str_bytes::RawOsStr;
let raw = RawOsStr::from_str("foobar");
assert_eq!(
Some((RawOsStr::from_str("f"), RawOsStr::from_str("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 str::starts_with
.
§Examples
use os_str_bytes::RawOsStr;
let raw = RawOsStr::from_str("foobar");
assert!(raw.starts_with("foo"));
assert!(!raw.starts_with("bar"));
Sourcepub fn starts_with_os(&self, pat: &Self) -> bool
👎Deprecated: enable the ‘conversions’ feature
pub fn starts_with_os(&self, pat: &Self) -> bool
Equivalent to str::starts_with
but accepts this type for the
pattern.
§Examples
use os_str_bytes::RawOsStr;
let raw = RawOsStr::from_str("foobar");
assert!(raw.starts_with_os(RawOsStr::from_str("foo")));
assert!(!raw.starts_with_os(RawOsStr::from_str("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 str::strip_prefix
.
§Examples
use os_str_bytes::RawOsStr;
let raw = RawOsStr::from_str("111foo1bar111");
assert_eq!(
Some(RawOsStr::from_str("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 str::strip_suffix
.
§Examples
use os_str_bytes::RawOsStr;
let raw = RawOsStr::from_str("111foo1bar111");
assert_eq!(
Some(RawOsStr::from_str("111foo1bar11")),
raw.strip_suffix("1"),
);
assert_eq!(None, raw.strip_suffix("o"));
Sourcepub fn to_os_str(&self) -> Cow<'_, OsStr>
pub fn to_os_str(&self) -> Cow<'_, OsStr>
Converts this representation back to a platform-native string.
When possible, use RawOsStrCow::into_os_str
for a more efficient
conversion on some platforms.
§Nightly Notes
This method is deprecated. Use as_os_str
instead.
§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]>
👎Deprecated: enable the ‘conversions’ feature
pub fn to_raw_bytes(&self) -> Cow<'_, [u8]>
Converts and returns the byte string stored by this container.
The returned string will use an unspecified encoding.
§Examples
use os_str_bytes::RawOsStr;
let string = "foobar";
let raw = RawOsStr::from_str(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::from_str(string);
assert_eq!(Some(string), raw.to_str());
Sourcepub fn to_str_lossy(&self) -> Cow<'_, str>
pub fn to_str_lossy(&self) -> Cow<'_, str>
Converts this string to the best UTF-8 representation possible.
Invalid sequences will be replaced with
char::REPLACEMENT_CHARACTER
.
This method may return a different result than would
OsStr::to_string_lossy
when called on same string, since OsStr
uses an unspecified encoding.
§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 str::trim_end_matches
.
§Examples
use os_str_bytes::RawOsStr;
let raw = RawOsStr::from_str("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 str::trim_matches
.
§Examples
use os_str_bytes::RawOsStr;
let raw = RawOsStr::from_str("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 str::trim_start_matches
.
§Examples
use os_str_bytes::RawOsStr;
let raw = RawOsStr::from_str("111foo1bar111");
assert_eq!("foo1bar111", raw.trim_start_matches("1"));
assert_eq!("111foo1bar111", raw.trim_start_matches("o"));
Trait Implementations§
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 moreSource§impl Debug for RawOsString
impl Debug for RawOsString
Source§impl Default for RawOsString
impl Default for RawOsString
Source§fn default() -> RawOsString
fn default() -> RawOsString
Source§impl Deref for RawOsString
impl Deref for RawOsString
Source§impl From<RawOsString> for Box<RawOsStr>
impl From<RawOsString> for Box<RawOsStr>
Source§fn from(value: RawOsString) -> Self
fn from(value: RawOsString) -> Self
Source§impl From<RawOsString> for Cow<'_, RawOsStr>
impl From<RawOsString> for Cow<'_, RawOsStr>
Source§fn from(value: RawOsString) -> Self
fn from(value: RawOsString) -> Self
Source§impl From<String> for RawOsString
impl From<String> for RawOsString
Source§impl Hash for RawOsString
impl Hash for RawOsString
Source§impl Index<RangeFull> for RawOsString
impl Index<RangeFull> for RawOsString
Source§impl Index<RangeInclusive<usize>> for RawOsString
impl Index<RangeInclusive<usize>> for RawOsString
Source§impl Index<RangeToInclusive<usize>> for RawOsString
impl Index<RangeToInclusive<usize>> for RawOsString
Source§impl Ord for RawOsString
impl Ord for RawOsString
Source§fn cmp(&self, other: &RawOsString) -> Ordering
fn cmp(&self, other: &RawOsString) -> Ordering
1.21.0 · Source§fn max(self, other: Self) -> Selfwhere
Self: Sized,
fn max(self, other: Self) -> Selfwhere
Self: Sized,
Source§impl PartialEq<&RawOsStr> for RawOsString
impl PartialEq<&RawOsStr> for RawOsString
Source§impl PartialEq<&str> for RawOsString
impl PartialEq<&str> for RawOsString
Source§impl PartialEq<RawOsStr> for RawOsString
impl PartialEq<RawOsStr> for RawOsString
Source§impl PartialEq<RawOsString> for &RawOsStr
impl PartialEq<RawOsString> for &RawOsStr
Source§impl PartialEq<RawOsString> for &str
impl PartialEq<RawOsString> for &str
Source§impl PartialEq<RawOsString> for RawOsStr
impl PartialEq<RawOsString> for RawOsStr
Source§impl PartialEq<RawOsString> for String
impl PartialEq<RawOsString> for String
Source§impl PartialEq<RawOsString> for str
impl PartialEq<RawOsString> for str
Source§impl PartialEq<String> for RawOsString
impl PartialEq<String> for RawOsString
Source§impl PartialEq<str> for RawOsString
impl PartialEq<str> for RawOsString
Source§impl PartialEq for RawOsString
impl PartialEq for RawOsString
Source§impl PartialOrd for RawOsString
impl PartialOrd for RawOsString
impl Eq for RawOsString
impl StructuralPartialEq for RawOsString
Auto Trait Implementations§
impl Freeze for RawOsString
impl RefUnwindSafe for RawOsString
impl Send for RawOsString
impl Sync for RawOsString
impl Unpin for RawOsString
impl UnwindSafe for RawOsString
Blanket Implementations§
Source§impl<T> BorrowMut<T> for Twhere
T: ?Sized,
impl<T> BorrowMut<T> for Twhere
T: ?Sized,
Source§fn borrow_mut(&mut self) -> &mut T
fn borrow_mut(&mut self) -> &mut T
Source§impl<T> CloneToUninit for Twhere
T: Clone,
impl<T> CloneToUninit for Twhere
T: Clone,
Layout§
Note: Most layout information is completely unstable and may even differ between compilations. The only exception is types with certain repr(...)
attributes. Please see the Rust Reference's “Type Layout” chapter for details on type layout guarantees.
Size: 24 bytes