1.0.0[][src]Struct std::ffi::OsStr

pub struct OsStr { /* fields omitted */ }

Borrowed reference to an OS string (see OsString).

This type represents a borrowed reference to a string in the operating system's preferred representation.

&OsStr is to OsString as &str is to String: the former in each pair are borrowed references; the latter are owned strings.

See the module's toplevel documentation about conversions for a discussion on the traits which OsStr implements for conversions from/to native representations.

Methods

impl OsStr
[src]

Coerces into an OsStr slice.

Examples

use std::ffi::OsStr;

let os_str = OsStr::new("foo");Run

Yields a &str slice if the OsStr is valid Unicode.

This conversion may entail doing a check for UTF-8 validity.

Examples

use std::ffi::OsStr;

let os_str = OsStr::new("foo");
assert_eq!(os_str.to_str(), Some("foo"));Run

Converts an OsStr to a Cow<str>.

Any non-Unicode sequences are replaced with U+FFFD REPLACEMENT CHARACTER.

Examples

Calling to_string_lossy on an OsStr with valid unicode:

use std::ffi::OsStr;

let os_str = OsStr::new("foo");
assert_eq!(os_str.to_string_lossy(), "foo");Run

Had os_str contained invalid unicode, the to_string_lossy call might have returned "fo�".

Copies the slice into an owned OsString.

Examples

use std::ffi::{OsStr, OsString};

let os_str = OsStr::new("foo");
let os_string = os_str.to_os_string();
assert_eq!(os_string, OsString::from("foo"));Run

Checks whether the OsStr is empty.

Examples

use std::ffi::OsStr;

let os_str = OsStr::new("");
assert!(os_str.is_empty());

let os_str = OsStr::new("foo");
assert!(!os_str.is_empty());Run

Returns the length of this OsStr.

Note that this does not return the number of bytes in this string as, for example, OS strings on Windows are encoded as a list of u16 rather than a list of bytes. This number is simply useful for passing to other methods like OsString::with_capacity to avoid reallocations.

See OsStr introduction for more information about encoding.

Examples

use std::ffi::OsStr;

let os_str = OsStr::new("");
assert_eq!(os_str.len(), 0);

let os_str = OsStr::new("foo");
assert_eq!(os_str.len(), 3);Run

Converts a Box<OsStr> into an OsString without copying or allocating.

Trait Implementations

impl OsStrExt for OsStr
[src]

impl OsStrExt for OsStr
[src]

impl Debug for OsStr
[src]

impl PartialEq<OsStr> for OsStr
[src]

This method tests for !=.

impl PartialEq<str> for OsStr
[src]

This method tests for !=.

impl PartialEq<OsStr> for str
[src]

This method tests for !=.

impl<'a, 'b> PartialEq<OsStr> for OsString
1.8.0
[src]

This method tests for !=.

impl<'a, 'b> PartialEq<OsString> for OsStr
1.8.0
[src]

This method tests for !=.

impl<'a, 'b> PartialEq<&'a OsStr> for OsString
1.8.0
[src]

This method tests for !=.

impl<'a, 'b> PartialEq<OsString> for &'a OsStr
1.8.0
[src]

This method tests for !=.

impl<'a, 'b> PartialEq<OsStr> for Cow<'a, OsStr>
1.8.0
[src]

This method tests for !=.

impl<'a, 'b> PartialEq<Cow<'a, OsStr>> for OsStr
1.8.0
[src]

This method tests for !=.

impl<'a, 'b> PartialEq<&'b OsStr> for Cow<'a, OsStr>
1.8.0
[src]

This method tests for !=.

impl<'a, 'b> PartialEq<Cow<'a, OsStr>> for &'b OsStr
1.8.0
[src]

This method tests for !=.

impl<'a, 'b> PartialEq<OsStr> for PathBuf
1.8.0
[src]

This method tests for !=.

impl<'a, 'b> PartialEq<PathBuf> for OsStr
1.8.0
[src]

This method tests for !=.

impl<'a, 'b> PartialEq<&'a OsStr> for PathBuf
1.8.0
[src]

This method tests for !=.

impl<'a, 'b> PartialEq<PathBuf> for &'a OsStr
1.8.0
[src]

This method tests for !=.

impl<'a, 'b> PartialEq<OsStr> for Path
1.8.0
[src]

This method tests for !=.

impl<'a, 'b> PartialEq<Path> for OsStr
1.8.0
[src]

This method tests for !=.

impl<'a, 'b> PartialEq<&'a OsStr> for Path
1.8.0
[src]

This method tests for !=.

impl<'a, 'b> PartialEq<Path> for &'a OsStr
1.8.0
[src]

This method tests for !=.

impl<'a, 'b> PartialEq<OsStr> for &'a Path
1.8.0
[src]

This method tests for !=.

impl<'a, 'b> PartialEq<&'a Path> for OsStr
1.8.0
[src]

This method tests for !=.

impl<'a, 'b> PartialEq<OsStr> for Cow<'a, Path>
1.8.0
[src]

This method tests for !=.

impl<'a, 'b> PartialEq<Cow<'a, Path>> for OsStr
1.8.0
[src]

This method tests for !=.

impl<'a, 'b> PartialEq<&'b OsStr> for Cow<'a, Path>
1.8.0
[src]

This method tests for !=.

impl<'a, 'b> PartialEq<Cow<'a, Path>> for &'b OsStr
1.8.0
[src]

This method tests for !=.

impl Eq for OsStr
[src]

impl Ord for OsStr
[src]

Compares and returns the maximum of two values. Read more

Compares and returns the minimum of two values. Read more

impl PartialOrd<OsStr> for OsStr
[src]

impl PartialOrd<str> for OsStr
[src]

This method tests less than (for self and other) and is used by the < operator. Read more

This method tests less than or equal to (for self and other) and is used by the <= operator. Read more

This method tests greater than (for self and other) and is used by the > operator. Read more

This method tests greater than or equal to (for self and other) and is used by the >= operator. Read more

impl<'a, 'b> PartialOrd<OsStr> for OsString
1.8.0
[src]

This method tests less than (for self and other) and is used by the < operator. Read more

This method tests less than or equal to (for self and other) and is used by the <= operator. Read more

This method tests greater than (for self and other) and is used by the > operator. Read more

This method tests greater than or equal to (for self and other) and is used by the >= operator. Read more

impl<'a, 'b> PartialOrd<OsString> for OsStr
1.8.0
[src]

This method tests less than (for self and other) and is used by the < operator. Read more

This method tests less than or equal to (for self and other) and is used by the <= operator. Read more

This method tests greater than (for self and other) and is used by the > operator. Read more

This method tests greater than or equal to (for self and other) and is used by the >= operator. Read more

impl<'a, 'b> PartialOrd<&'a OsStr> for OsString
1.8.0
[src]

This method tests less than (for self and other) and is used by the < operator. Read more

This method tests less than or equal to (for self and other) and is used by the <= operator. Read more

This method tests greater than (for self and other) and is used by the > operator. Read more

This method tests greater than or equal to (for self and other) and is used by the >= operator. Read more

impl<'a, 'b> PartialOrd<OsString> for &'a OsStr
1.8.0
[src]

This method tests less than (for self and other) and is used by the < operator. Read more

This method tests less than or equal to (for self and other) and is used by the <= operator. Read more

This method tests greater than (for self and other) and is used by the > operator. Read more

This method tests greater than or equal to (for self and other) and is used by the >= operator. Read more

impl<'a, 'b> PartialOrd<OsStr> for Cow<'a, OsStr>
1.8.0
[src]

This method tests less than (for self and other) and is used by the < operator. Read more

This method tests less than or equal to (for self and other) and is used by the <= operator. Read more

This method tests greater than (for self and other) and is used by the > operator. Read more

This method tests greater than or equal to (for self and other) and is used by the >= operator. Read more

impl<'a, 'b> PartialOrd<Cow<'a, OsStr>> for OsStr
1.8.0
[src]

This method tests less than (for self and other) and is used by the < operator. Read more

This method tests less than or equal to (for self and other) and is used by the <= operator. Read more

This method tests greater than (for self and other) and is used by the > operator. Read more

This method tests greater than or equal to (for self and other) and is used by the >= operator. Read more

impl<'a, 'b> PartialOrd<&'b OsStr> for Cow<'a, OsStr>
1.8.0
[src]

This method tests less than (for self and other) and is used by the < operator. Read more

This method tests less than or equal to (for self and other) and is used by the <= operator. Read more

This method tests greater than (for self and other) and is used by the > operator. Read more

This method tests greater than or equal to (for self and other) and is used by the >= operator. Read more

impl<'a, 'b> PartialOrd<Cow<'a, OsStr>> for &'b OsStr
1.8.0
[src]

This method tests less than (for self and other) and is used by the < operator. Read more

This method tests less than or equal to (for self and other) and is used by the <= operator. Read more

This method tests greater than (for self and other) and is used by the > operator. Read more

This method tests greater than or equal to (for self and other) and is used by the >= operator. Read more

impl<'a, 'b> PartialOrd<OsStr> for PathBuf
1.8.0
[src]

This method tests less than (for self and other) and is used by the < operator. Read more

This method tests less than or equal to (for self and other) and is used by the <= operator. Read more

This method tests greater than (for self and other) and is used by the > operator. Read more

This method tests greater than or equal to (for self and other) and is used by the >= operator. Read more

impl<'a, 'b> PartialOrd<PathBuf> for OsStr
1.8.0
[src]

This method tests less than (for self and other) and is used by the < operator. Read more

This method tests less than or equal to (for self and other) and is used by the <= operator. Read more

This method tests greater than (for self and other) and is used by the > operator. Read more

This method tests greater than or equal to (for self and other) and is used by the >= operator. Read more

impl<'a, 'b> PartialOrd<&'a OsStr> for PathBuf
1.8.0
[src]

This method tests less than (for self and other) and is used by the < operator. Read more

This method tests less than or equal to (for self and other) and is used by the <= operator. Read more

This method tests greater than (for self and other) and is used by the > operator. Read more

This method tests greater than or equal to (for self and other) and is used by the >= operator. Read more

impl<'a, 'b> PartialOrd<PathBuf> for &'a OsStr
1.8.0
[src]

This method tests less than (for self and other) and is used by the < operator. Read more

This method tests less than or equal to (for self and other) and is used by the <= operator. Read more

This method tests greater than (for self and other) and is used by the > operator. Read more

This method tests greater than or equal to (for self and other) and is used by the >= operator. Read more

impl<'a, 'b> PartialOrd<OsStr> for Path
1.8.0
[src]

This method tests less than (for self and other) and is used by the < operator. Read more

This method tests less than or equal to (for self and other) and is used by the <= operator. Read more

This method tests greater than (for self and other) and is used by the > operator. Read more

This method tests greater than or equal to (for self and other) and is used by the >= operator. Read more

impl<'a, 'b> PartialOrd<Path> for OsStr
1.8.0
[src]

This method tests less than (for self and other) and is used by the < operator. Read more

This method tests less than or equal to (for self and other) and is used by the <= operator. Read more

This method tests greater than (for self and other) and is used by the > operator. Read more

This method tests greater than or equal to (for self and other) and is used by the >= operator. Read more

impl<'a, 'b> PartialOrd<&'a OsStr> for Path
1.8.0
[src]

This method tests less than (for self and other) and is used by the < operator. Read more

This method tests less than or equal to (for self and other) and is used by the <= operator. Read more

This method tests greater than (for self and other) and is used by the > operator. Read more

This method tests greater than or equal to (for self and other) and is used by the >= operator. Read more

impl<'a, 'b> PartialOrd<Path> for &'a OsStr
1.8.0
[src]

This method tests less than (for self and other) and is used by the < operator. Read more

This method tests less than or equal to (for self and other) and is used by the <= operator. Read more

This method tests greater than (for self and other) and is used by the > operator. Read more

This method tests greater than or equal to (for self and other) and is used by the >= operator. Read more

impl<'a, 'b> PartialOrd<OsStr> for &'a Path
1.8.0
[src]

This method tests less than (for self and other) and is used by the < operator. Read more

This method tests less than or equal to (for self and other) and is used by the <= operator. Read more

This method tests greater than (for self and other) and is used by the > operator. Read more

This method tests greater than or equal to (for self and other) and is used by the >= operator. Read more

impl<'a, 'b> PartialOrd<&'a Path> for OsStr
1.8.0
[src]

This method tests less than (for self and other) and is used by the < operator. Read more

This method tests less than or equal to (for self and other) and is used by the <= operator. Read more

This method tests greater than (for self and other) and is used by the > operator. Read more

This method tests greater than or equal to (for self and other) and is used by the >= operator. Read more

impl<'a, 'b> PartialOrd<OsStr> for Cow<'a, Path>
1.8.0
[src]

This method tests less than (for self and other) and is used by the < operator. Read more

This method tests less than or equal to (for self and other) and is used by the <= operator. Read more

This method tests greater than (for self and other) and is used by the > operator. Read more

This method tests greater than or equal to (for self and other) and is used by the >= operator. Read more

impl<'a, 'b> PartialOrd<Cow<'a, Path>> for OsStr
1.8.0
[src]

This method tests less than (for self and other) and is used by the < operator. Read more

This method tests less than or equal to (for self and other) and is used by the <= operator. Read more

This method tests greater than (for self and other) and is used by the > operator. Read more

This method tests greater than or equal to (for self and other) and is used by the >= operator. Read more

impl<'a, 'b> PartialOrd<&'b OsStr> for Cow<'a, Path>
1.8.0
[src]

This method tests less than (for self and other) and is used by the < operator. Read more

This method tests less than or equal to (for self and other) and is used by the <= operator. Read more

This method tests greater than (for self and other) and is used by the > operator. Read more

This method tests greater than or equal to (for self and other) and is used by the >= operator. Read more

impl<'a, 'b> PartialOrd<Cow<'a, Path>> for &'b OsStr
1.8.0
[src]

This method tests less than (for self and other) and is used by the < operator. Read more

This method tests less than or equal to (for self and other) and is used by the <= operator. Read more

This method tests greater than (for self and other) and is used by the > operator. Read more

This method tests greater than or equal to (for self and other) and is used by the >= operator. Read more

impl Hash for OsStr
[src]

Feeds a slice of this type into the given [Hasher]. Read more

impl<'a> From<&'a OsStr> for Box<OsStr>
1.17.0
[src]

impl<'a> From<&'a OsStr> for Arc<OsStr>
1.24.0
[src]

impl<'a> From<&'a OsStr> for Rc<OsStr>
1.24.0
[src]

impl<'a> From<&'a OsStr> for Cow<'a, OsStr>
1.28.0
[src]

impl AsRef<OsStr> for OsStr
[src]

impl AsRef<OsStr> for OsString
[src]

impl AsRef<OsStr> for str
[src]

impl AsRef<OsStr> for String
[src]

impl<'a> AsRef<OsStr> for Component<'a>
[src]

impl<'a> AsRef<OsStr> for Components<'a>
[src]

impl<'a> AsRef<OsStr> for Iter<'a>
[src]

impl AsRef<OsStr> for PathBuf
[src]

impl AsRef<OsStr> for Path
[src]

impl AsRef<Path> for OsStr
[src]

impl<'a> Default for &'a OsStr
1.9.0
[src]

Creates an empty OsStr.

impl Borrow<OsStr> for OsString
[src]

impl ToOwned for OsStr
[src]

Auto Trait Implementations

impl Send for OsStr

impl Sync for OsStr

Blanket Implementations

impl<T> Borrow for T where
    T: ?Sized
[src]

impl<T> BorrowMut for T where
    T: ?Sized
[src]

impl<T> Any for T where
    T: 'static + ?Sized
[src]

impl<T> ToOwned for T where
    T: Clone
[src]