# Trait os_str_bytes::OsStrBytes

source · [−]

    pub trait OsStrBytes: Sealed + ToOwned {
        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]>>,

👎 Deprecated:

use `assert_from_raw_bytes` instead, or enable the ‘checked_conversions’ feature

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]>>,

👎 Deprecated:

use `assert_from_raw_bytes` instead, or enable the ‘checked_conversions’ feature

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]>>,

👎 Deprecated:

use `assert_from_raw_bytes` instead, or enable the ‘checked_conversions’ feature

source

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

## Implementors