Update documention in windows::ffi
This commit is contained in:
parent
49c67bd632
commit
db16ca7c83
@ -26,8 +26,22 @@ pub trait OsStringExt {
|
||||
/// Creates an `OsString` from a potentially ill-formed UTF-16 slice of
|
||||
/// 16-bit code units.
|
||||
///
|
||||
/// This is lossless: calling `.encode_wide()` on the resulting string
|
||||
/// This is lossless: calling [`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[..]);
|
||||
/// ```
|
||||
///
|
||||
/// [`encode_wide()`]: ./trait.OsStrExt.html#tymethod.encode_wide
|
||||
#[stable(feature = "rust1", since = "1.0.0")]
|
||||
fn from_wide(wide: &[u16]) -> Self;
|
||||
}
|
||||
@ -42,11 +56,29 @@ impl OsStringExt for OsString {
|
||||
/// Windows-specific extensions to `OsStr`.
|
||||
#[stable(feature = "rust1", since = "1.0.0")]
|
||||
pub trait OsStrExt {
|
||||
/// Re-encodes an `OsStr` as a wide character sequence,
|
||||
/// i.e. potentially ill-formed UTF-16.
|
||||
/// Re-encodes an `OsStr` as a wide character sequence, i.e. potentially
|
||||
/// ill-formed UTF-16.
|
||||
///
|
||||
/// This is lossless. Note that the encoding does not include a final
|
||||
/// null.
|
||||
/// This is lossless: calling [`OsString::from_wide()`] and then
|
||||
/// `encode_wide()` on the result will yield the original code units.
|
||||
/// Note that the encoding does not add a final null terminator.
|
||||
///
|
||||
/// # 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[..]);
|
||||
///
|
||||
/// let result: Vec<u16> = string.encode_wide().collect();
|
||||
/// assert_eq!(&source[..], &result[..]);
|
||||
/// ```
|
||||
///
|
||||
/// [`OsString::from_wide()`]: ./trait.OsStringExt.html#tymethod.from_wide
|
||||
#[stable(feature = "rust1", since = "1.0.0")]
|
||||
fn encode_wide(&self) -> EncodeWide;
|
||||
}
|
||||
|
@ -8,11 +8,13 @@
|
||||
// option. This file may not be copied, modified, or distributed
|
||||
// except according to those terms.
|
||||
|
||||
//! Experimental extensions to `std` for Windows.
|
||||
//! Platform-specific extensions to `std` for Windows.
|
||||
//!
|
||||
//! For now, this module is limited to extracting handles, file
|
||||
//! descriptors, and sockets, but its functionality will grow over
|
||||
//! time.
|
||||
//! Provides access to platform-level information for Windows, and exposes
|
||||
//! Windows-specific idioms that would otherwise be inappropriate as part
|
||||
//! the core `std` library. These extensions allow developers to use
|
||||
//! `std` types and idioms with Windows in a way that the noraml
|
||||
//! platform-agnostic idioms would not normally support.
|
||||
|
||||
#![stable(feature = "rust1", since = "1.0.0")]
|
||||
|
||||
|
@ -750,6 +750,7 @@ impl<'a> Iterator for Wtf8CodePoints<'a> {
|
||||
}
|
||||
}
|
||||
|
||||
/// Generates a wide character sequence for potentially ill-formed UTF-16.
|
||||
#[stable(feature = "rust1", since = "1.0.0")]
|
||||
#[derive(Clone)]
|
||||
pub struct EncodeWide<'a> {
|
||||
|
Loading…
Reference in New Issue
Block a user