OsStringExt in std::os::windows::ffi - Rust (original) (raw)

Trait OsStringExt

1.0.0 · Source

pub trait OsStringExt: Sealed {
    // Required method
    fn from_wide(wide: &[u16]) -> Self;
}

Available on Windows only.

Expand description

Windows-specific extensions to OsString.

This trait is sealed: it cannot be implemented outside the standard library. This is so that future additional methods are not breaking changes.

1.0.0 · Source

Creates an OsString from a potentially ill-formed UTF-16 slice of 16-bit code units.

This is lossless: calling OsStrExt::encode_wide on the resulting string will always return the original code units.

§Examples
use std::ffi::OsString;
use std::os::windows::prelude::*;

// UTF-16 encoding for "Unicode".
let source = [0x0055, 0x006E, 0x0069, 0x0063, 0x006F, 0x0064, 0x0065];

let string = OsString::from_wide(&source[..]);

This trait is not dyn compatible.

In older versions of Rust, dyn compatibility was called "object safety", so this trait is not object safe.

1.0.0 · Source§