mirror of
https://github.com/rust-lang/rust.git
synced 2025-06-05 03:38:29 +00:00
Expand the explanation of OsString capacity
This commit is contained in:
parent
81e21080b6
commit
45582079bc
@ -45,10 +45,21 @@ use crate::sys_common::{AsInner, FromInner, IntoInner};
|
|||||||
/// values, encoded in a less-strict variant of UTF-8. This is useful to
|
/// values, encoded in a less-strict variant of UTF-8. This is useful to
|
||||||
/// understand when handling capacity and length values.
|
/// understand when handling capacity and length values.
|
||||||
///
|
///
|
||||||
/// # Capacity of OsString
|
/// # Capacity of `OsString`
|
||||||
///
|
///
|
||||||
/// Capacity means UTF-8 byte size for OS strings which created from
|
/// Capacity uses units of UTF-8 bytes for OS strings which were created from valid unicode, and
|
||||||
/// valid unicode, and not otherwise specified for other contents.
|
/// uses units of bytes in an unspecified encoding for other contents. On a given target, all
|
||||||
|
/// `OsString` and `OsStr` values use the same units for capacity, so the following will work:
|
||||||
|
/// ```
|
||||||
|
/// use std::ffi::{OsStr, OsString};
|
||||||
|
///
|
||||||
|
/// fn concat_os_strings(a: &OsStr, b: &OsStr) -> OsString {
|
||||||
|
/// let mut ret = OsString::with_capacity(a.len() + b.len()); // This will allocate
|
||||||
|
/// ret.push(a); // This will not allocate further
|
||||||
|
/// ret.push(b); // This will not allocate further
|
||||||
|
/// ret
|
||||||
|
/// }
|
||||||
|
/// ```
|
||||||
///
|
///
|
||||||
/// # Creating an `OsString`
|
/// # Creating an `OsString`
|
||||||
///
|
///
|
||||||
|
Loading…
Reference in New Issue
Block a user