pub trait OsStrBytes: Sealed + ToOwned {
    // Required methods
    fn assert_from_raw_bytes<'a, S>(string: S) -> Cow<'a, Self>
       where S: Into<Cow<'a, [u8]>>;
    fn from_raw_bytes<'a, S>(string: S) -> Result<Cow<'a, Self>, EncodingError>
       where S: Into<Cow<'a, [u8]>>;
    fn to_raw_bytes(&self) -> Cow<'_, [u8]>;
}
Expand description

A platform agnostic variant of OsStrExt.

For more information, see the module-level documentation.

Required Methods§

source

fn assert_from_raw_bytes<'a, S>(string: S) -> Cow<'a, Self>where S: Into<Cow<'a, [u8]>>,

Converts a byte string into an equivalent platform-native string.

Panics

Panics if the string is not valid for the unspecified encoding used by this crate.

Examples
use std::env;
use std::ffi::OsStr;

use os_str_bytes::OsStrBytes;

let os_string = env::current_exe()?;
let os_bytes = os_string.to_raw_bytes();
assert_eq!(os_string, OsStr::assert_from_raw_bytes(os_bytes));
source

fn from_raw_bytes<'a, S>(string: S) -> Result<Cow<'a, Self>, EncodingError>where S: Into<Cow<'a, [u8]>>,

Available on crate feature checked_conversions only.

Converts a byte string into an equivalent platform-native string.

assert_from_raw_bytes should almost always be used instead. For more information, see EncodingError.

Errors

See documentation for EncodingError.

Examples
use std::env;
use std::ffi::OsStr;

use os_str_bytes::OsStrBytes;

let os_string = env::current_exe()?;
let os_bytes = os_string.to_raw_bytes();
assert_eq!(os_string, OsStr::from_raw_bytes(os_bytes).unwrap());
source

fn to_raw_bytes(&self) -> Cow<'_, [u8]>

Converts a platform-native string into an equivalent byte string.

The returned string will use an unspecified encoding.

Examples
use std::ffi::OsStr;

use os_str_bytes::OsStrBytes;

let string = "foobar";
let os_string = OsStr::new(string);
assert_eq!(string.as_bytes(), &*os_string.to_raw_bytes());

Implementations on Foreign Types§

source§

impl OsStrBytes for OsStr

source§

fn assert_from_raw_bytes<'a, S>(string: S) -> Cow<'a, Self>where S: Into<Cow<'a, [u8]>>,

source§

fn from_raw_bytes<'a, S>(string: S) -> Result<Cow<'a, Self>, EncodingError>where S: Into<Cow<'a, [u8]>>,

Available on crate feature checked_conversions only.
source§

fn to_raw_bytes(&self) -> Cow<'_, [u8]>

source§

impl OsStrBytes for Path

source§

fn assert_from_raw_bytes<'a, S>(string: S) -> Cow<'a, Self>where S: Into<Cow<'a, [u8]>>,

source§

fn from_raw_bytes<'a, S>(string: S) -> Result<Cow<'a, Self>, EncodingError>where S: Into<Cow<'a, [u8]>>,

Available on crate feature checked_conversions only.
source§

fn to_raw_bytes(&self) -> Cow<'_, [u8]>

Implementors§