Struct std::ffi::OsString

1.0.0 · source ·
pub struct OsString { /* private fields */ }
Expand description

一种类型,可以表示拥有的,可变的平台原生字符串,但可以廉价地与 Rust 字符串互转换。

对这种类型的需求源于以下事实:

  • 在 Unix 系统上,字符串通常是非零字节的任意序列,在许多情况下解释为 UTF-8。

  • 在 Windows 上,字符串通常是非零的 16 位值的任意序列,如果有效,则将其解释为 UTF-16。

  • 在 Rust 中,字符串始终是有效的 UTF-8,其中可能包含零。

OsStringOsStr 通过同时表示 Rust 和平台原生字符串值来弥合这一差距,特别是允许 Rust 字符串在可能的情况下免费转换为 “OS” 字符串。 这样的结果是 OsString 实例不是 * NUL 终止的; 为了传递给例如 Unix 系统调用,您应该创建一个 CStr

OsString&OsStr 如同 String&str: 每对中的前一个都是拥有所有权的字符串; 后者是借用的。

注意,OsStringOsStr 在内部不一定要以平台固有的形式保存字符串。在 Unix 上,字符串被存储为 8 位值的序列,在 Windows 上,字符串是基于 16 位值的,正如刚才所讨论的,字符串实际上也被存储为 8 位值的序列,用一种不太严格的 UTF-8 变体编码。

这对于理解处理容量和长度值时很有用。

OsString 容量

容量对从有效 unicode 创建的 OS 字符串使用 UTF-8 字节单位,对其他内容使用未指定编码的字节单位。在给定的目标上,所有 OsStringOsStr 值都使用相同的容量单位,因此以下将起作用:

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

fn concat_os_strings(a: &OsStr, b: &OsStr) -> OsString {
    let mut ret = OsString::with_capacity(a.len() + b.len()); // 这将分配
    ret.push(a); // 这不会进一步分配
    ret.push(b); // 这不会进一步分配
    ret
}
Run

创建一个 OsString

来自 Rust 字符串: OsString 实现了 From<String>,因此您可以使用 my_string.into() 从普通 Rust 字符串创建 OsString

**从切片: **就像您可以从一个空的 Rust String 开始,然后用 String::push_str 将一些 &str 子字符串切片放入其中一样,您也可以使用 OsString::new 方法创建一个空的 OsString,然后使用 OsString::push 方法将字符串切片推入其中。

提取整个操作系统字符串中的借用引用

您可以使用 OsString::as_os_str 方法从 OsString 获取 &OsStr ; 这实际上是对整个字符串的借用引用。

Conversions

请参见模块中关于 转换 的顶级文档,以讨论为 OsString from/to 原生表示形式的 转换 而实现的特征。

Implementations§

source§

impl OsString

source

pub fn new() -> OsString

创建一个新的空 OsString

Examples
use std::ffi::OsString;

let os_string = OsString::new();
Run
source

pub fn as_os_str(&self) -> &OsStr

转换为 OsStr 切片。

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

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

pub fn into_string(self) -> Result<String, OsString>

如果 OsString 包含有效的 Unicode 数据,则将其转换为 String

失败时,将返回原始 OsString 的所有权。

Examples
use std::ffi::OsString;

let os_string = OsString::from("foo");
let string = os_string.into_string();
assert_eq!(string, Ok(String::from("foo")));
Run
source

pub fn push<T: AsRef<OsStr>>(&mut self, s: T)

用给定的 &OsStr 切片扩展字符串。

Examples
use std::ffi::OsString;

let mut os_string = OsString::from("foo");
os_string.push("bar");
assert_eq!(&os_string, "foobar");
Run
1.9.0 · source

pub fn with_capacity(capacity: usize) -> OsString

创建一个至少具有给定容量的新 OsString

该字符串将能够保存至少 capacity 长度单位的其他 OS 字符串,而无需重新分配。 此方法允许分配多于 capacity 的单元。 如果 capacity 为 0,则不会分配该字符串。

请参见有关编码和容量单位的主要 OsString 文档信息。

Examples
use std::ffi::OsString;

let mut os_string = OsString::with_capacity(10);
let capacity = os_string.capacity();

// 无需重新分配即可完成此推送
os_string.push("foo");

assert_eq!(capacity, os_string.capacity());
Run
1.9.0 · source

pub fn clear(&mut self)

OsString 截断为零长度。

Examples
use std::ffi::OsString;

let mut os_string = OsString::from("foo");
assert_eq!(&os_string, "foo");

os_string.clear();
assert_eq!(&os_string, "");
Run
1.9.0 · source

pub fn capacity(&self) -> usize

返回此 OsString 无需重新分配即可容纳的容量。

请参见有关编码和容量单位的主要 OsString 文档信息。

Examples
use std::ffi::OsString;

let os_string = OsString::with_capacity(10);
assert!(os_string.capacity() >= 10);
Run
1.9.0 · source

pub fn reserve(&mut self, additional: usize)

为给定的 OsString 插入至少至少 additional 的容量保留容量。 如果容量已经足够,则不执行任何操作。

集合可以保留更多空间来推测性地避免频繁的重新分配。

请参见有关编码和容量单位的主要 OsString 文档信息。

Examples
use std::ffi::OsString;

let mut s = OsString::new();
s.reserve(10);
assert!(s.capacity() >= 10);
Run
1.63.0 · source

pub fn try_reserve(&mut self, additional: usize) -> Result<(), TryReserveError>

尝试在给定的 OsString 中为至少 additional 多个长度单位保留容量。 该字符串可能会保留更多空间来推测性地避免频繁的重新分配。 调用 try_reserve 后,如果返回 Ok(()),容量将大于等于 self.len() + additional

如果容量已经足够,则不执行任何操作。即使发生错误,此方法也会保留内容。

请参见有关编码和容量单位的主要 OsString 文档信息。

Errors

如果容量溢出,或者分配器报告失败,则返回错误。

Examples
use std::ffi::{OsStr, OsString};
use std::collections::TryReserveError;

fn process_data(data: &str) -> Result<OsString, TryReserveError> {
    let mut s = OsString::new();

    // 预先保留内存,如果不能,则退出
    s.try_reserve(OsStr::new(data).len())?;

    // 现在我们知道在我们复杂的工作中这不能 OOM
    s.push(data);

    Ok(s)
}
Run
1.9.0 · source

pub fn reserve_exact(&mut self, additional: usize)

为要插入给定 OsString 的至少 additional 更多容量保留最小容量。

如果容量已经足够,则不执行任何操作。

请注意,分配器可能会给集合提供比其请求更多的空间。 因此,不能依靠容量来精确地最小化。 如果预计将来会插入,则最好使用 reserve

请参见有关编码和容量单位的主要 OsString 文档信息。

Examples
use std::ffi::OsString;

let mut s = OsString::new();
s.reserve_exact(10);
assert!(s.capacity() >= 10);
Run
1.63.0 · source

pub fn try_reserve_exact( &mut self, additional: usize ) -> Result<(), TryReserveError>

尝试在给定的 OsString 中为至少 additional 更多长度单位保留最小容量。 调用 try_reserve_exact 后,如果返回 Ok(()),则容量将大于或等于 self.len() + additional

如果容量已经足够,则不执行任何操作。

请注意,分配器可能会为 OsString 提供比它请求更多的空间。 因此,不能依靠容量来精确地最小化。 如果希望将来插入,则首选 try_reserve

请参见有关编码和容量单位的主要 OsString 文档信息。

Errors

如果容量溢出,或者分配器报告失败,则返回错误。

Examples
use std::ffi::{OsStr, OsString};
use std::collections::TryReserveError;

fn process_data(data: &str) -> Result<OsString, TryReserveError> {
    let mut s = OsString::new();

    // 预先保留内存,如果不能,则退出
    s.try_reserve_exact(OsStr::new(data).len())?;

    // 现在我们知道在我们复杂的工作中这不能 OOM
    s.push(data);

    Ok(s)
}
Run
1.19.0 · source

pub fn shrink_to_fit(&mut self)

缩小 OsString 的容量以使其长度匹配。

请参见有关编码和容量单位的主要 OsString 文档信息。

Examples
use std::ffi::OsString;

let mut s = OsString::from("foo");

s.reserve(100);
assert!(s.capacity() >= 100);

s.shrink_to_fit();
assert_eq!(3, s.capacity());
Run
1.56.0 · source

pub fn shrink_to(&mut self, min_capacity: usize)

降低 OsString 的容量。

容量将至少保持与长度和提供的值一样大。

如果当前容量小于下限,则为无操作。

请参见有关编码和容量单位的主要 OsString 文档信息。

Examples
use std::ffi::OsString;

let mut s = OsString::from("foo");

s.reserve(100);
assert!(s.capacity() >= 100);

s.shrink_to(10);
assert!(s.capacity() >= 10);
s.shrink_to(0);
assert!(s.capacity() >= 3);
Run
1.20.0 · source

pub fn into_boxed_os_str(self) -> Box<OsStr>

将此 OsString 转换为 boxed OsStr

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

let s = OsString::from("hello");

let b: Box<OsStr> = s.into_boxed_os_str();
Run

Methods from Deref<Target = OsStr>§

source

pub fn to_str(&self) -> Option<&str>

如果 OsStr 是有效的 Unicode,则产生 &str

此转换可能需要检查 UTF-8 有效性。

Examples
use std::ffi::OsStr;

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

pub fn to_string_lossy(&self) -> Cow<'_, str>

OsStr 转换为 Cow<str>

任何非 Unicode 序列都将替换为 U+FFFD REPLACEMENT CHARACTER

Examples

使用无效的 Unicode 在 OsStr 上调用 to_string_lossy

// 注意,由于 Unix 和 Windows 表示字符串的方式不同,我们不得不使该示例复杂化,使用不同的源数据和通过不同的平台扩展来设置示例 `OsStr`。
// 可以理解,实际上,仅通过收集用户命令行参数,您就可以得到这样的示例无效序列。

#[cfg(unix)] {
    use std::ffi::OsStr;
    use std::os::unix::ffi::OsStrExt;

    // 此处,值 0x66 和 0x6f 分别对应于 'f' 和 'o'。
    // 值 0x80 是一个单独的连续字节,在 UTF-8 序列中无效。
    let source = [0x66, 0x6f, 0x80, 0x6f];
    let os_str = OsStr::from_bytes(&source[..]);

    assert_eq!(os_str.to_string_lossy(), "fo�o");
}
#[cfg(windows)] {
    use std::ffi::OsString;
    use std::os::windows::prelude::*;

    // 在此,值 0x0066 和 0x006f 分别对应于 'f' 和 'o'。
    // 值 0xD800 是一个单独的替代一半,在 UTF-16 序列中无效。
    let source = [0x0066, 0x006f, 0xD800, 0x006f];
    let os_string = OsString::from_wide(&source[..]);
    let os_str = os_string.as_os_str();

    assert_eq!(os_str.to_string_lossy(), "fo�o");
}
Run
source

pub fn to_os_string(&self) -> OsString

将切片复制到拥有的 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
1.9.0 · source

pub fn is_empty(&self) -> bool

检查 OsStr 是否为空。

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
1.9.0 · source

pub fn len(&self) -> usize

返回此 OsStr 的长度。

请注意,这不会以 OS 字符串形式返回字符串中的字节数。

返回的长度是 OsStr 使用的底层存储的长度。 如 OsString 简介中所讨论的,OsStringOsStr 以最适合于原生平台和 Rust 字符串形式之间的廉价相互转换的形式存储字符串,这两种形式在存储大小和编码方面可能都大不相同。

此数字对于传递给其他方法 (例如 OsString::with_capacity) 以避免重新分配非常有用。

请参见有关编码和容量单位的主要 OsString 文档信息。

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
1.53.0 · source

pub fn make_ascii_lowercase(&mut self)

将此字符串就地转换为其 ASCII 小写等效项。

ASCII 字母 ‘A’ 到 ‘Z’ 映射到 ‘a’ 到 ‘z’,但是非 ASCII 字母不变。

要返回新的小写值而不修改现有值,请使用 OsStr::to_ascii_lowercase

Examples
use std::ffi::OsString;

let mut s = OsString::from("GRÜßE, JÜRGEN ❤");

s.make_ascii_lowercase();

assert_eq!("grÜße, jÜrgen ❤", s);
Run
1.53.0 · source

pub fn make_ascii_uppercase(&mut self)

将此字符串就地转换为其 ASCII 大写等效项。

ASCII 字母 ‘a’ 到 ‘z’ 映射到 ‘A’ 到 ‘Z’,但是非 ASCII 字母不变。

要返回新的大写值而不修改现有值,请使用 OsStr::to_ascii_uppercase

Examples
use std::ffi::OsString;

let mut s = OsString::from("Grüße, Jürgen ❤");

s.make_ascii_uppercase();

assert_eq!("GRüßE, JüRGEN ❤", s);
Run
1.53.0 · source

pub fn to_ascii_lowercase(&self) -> OsString

返回此字符串的副本,其中每个字符都映射为其等效的 ASCII 小写字母。

ASCII 字母 ‘A’ 到 ‘Z’ 映射到 ‘a’ 到 ‘z’,但是非 ASCII 字母不变。

要就地小写该值,请使用 OsStr::make_ascii_lowercase

Examples
use std::ffi::OsString;
let s = OsString::from("Grüße, Jürgen ❤");

assert_eq!("grüße, jürgen ❤", s.to_ascii_lowercase());
Run
1.53.0 · source

pub fn to_ascii_uppercase(&self) -> OsString

返回此字符串的副本,其中每个字符都映射为其等效的 ASCII 大写字母。

ASCII 字母 ‘a’ 到 ‘z’ 映射到 ‘A’ 到 ‘Z’,但是非 ASCII 字母不变。

要就地将值大写,请使用 OsStr::make_ascii_uppercase

Examples
use std::ffi::OsString;
let s = OsString::from("Grüße, Jürgen ❤");

assert_eq!("GRüßE, JüRGEN ❤", s.to_ascii_uppercase());
Run
1.53.0 · source

pub fn is_ascii(&self) -> bool

检查此字符串中的所有字符是否都在 ASCII 范围内。

Examples
use std::ffi::OsString;

let ascii = OsString::from("hello!\n");
let non_ascii = OsString::from("Grüße, Jürgen ❤");

assert!(ascii.is_ascii());
assert!(!non_ascii.is_ascii());
Run
1.53.0 · source

pub fn eq_ignore_ascii_case<S: AsRef<OsStr>>(&self, other: S) -> bool

检查两个字符串是否为 ASCII 不区分大小写的匹配项。

to_ascii_lowercase(a) == to_ascii_lowercase(b) 相同,但不分配和复制临时文件。

Examples
use std::ffi::OsString;

assert!(OsString::from("Ferris").eq_ignore_ascii_case("FERRIS"));
assert!(OsString::from("Ferrös").eq_ignore_ascii_case("FERRöS"));
assert!(!OsString::from("Ferrös").eq_ignore_ascii_case("FERRÖS"));
Run

Trait Implementations§

source§

impl AsRef<OsStr> for OsString

source§

fn as_ref(&self) -> &OsStr

将此类型转换为 (通常是推断的) 输入类型的共享引用。
source§

impl AsRef<Path> for OsString

source§

fn as_ref(&self) -> &Path

将此类型转换为 (通常是推断的) 输入类型的共享引用。
source§

impl Borrow<OsStr> for OsString

source§

fn borrow(&self) -> &OsStr

从拥有的值中一成不变地借用。 Read more
source§

impl Clone for OsString

source§

fn clone(&self) -> Self

返回值的副本。 Read more
source§

fn clone_from(&mut self, source: &Self)

source 执行复制分配。 Read more
source§

impl Debug for OsString

source§

fn fmt(&self, formatter: &mut Formatter<'_>) -> Result

使用给定的格式化程序格式化该值。 Read more
1.9.0 · source§

impl Default for OsString

source§

fn default() -> OsString

创建一个空的 OsString

source§

impl Deref for OsString

§

type Target = OsStr

解引用后的结果类型。
source§

fn deref(&self) -> &OsStr

解引用值。
1.44.0 · source§

impl DerefMut for OsString

source§

fn deref_mut(&mut self) -> &mut OsStr

可变地解引用该值。
1.52.0 · source§

impl<'a> Extend<&'a OsStr> for OsString

source§

fn extend<T: IntoIterator<Item = &'a OsStr>>(&mut self, iter: T)

使用迭代器的内容扩展集合。 Read more
source§

fn extend_one(&mut self, item: A)

🔬This is a nightly-only experimental API. (extend_one #72631)
用一个元素扩展一个集合。
source§

fn extend_reserve(&mut self, additional: usize)

🔬This is a nightly-only experimental API. (extend_one #72631)
在集合中为给定数量的附加元素保留容量。 Read more
1.52.0 · source§

impl<'a> Extend<Cow<'a, OsStr>> for OsString

source§

fn extend<T: IntoIterator<Item = Cow<'a, OsStr>>>(&mut self, iter: T)

使用迭代器的内容扩展集合。 Read more
source§

fn extend_one(&mut self, item: A)

🔬This is a nightly-only experimental API. (extend_one #72631)
用一个元素扩展一个集合。
source§

fn extend_reserve(&mut self, additional: usize)

🔬This is a nightly-only experimental API. (extend_one #72631)
在集合中为给定数量的附加元素保留容量。 Read more
1.52.0 · source§

impl Extend<OsString> for OsString

source§

fn extend<T: IntoIterator<Item = OsString>>(&mut self, iter: T)

使用迭代器的内容扩展集合。 Read more
source§

fn extend_one(&mut self, item: A)

🔬This is a nightly-only experimental API. (extend_one #72631)
用一个元素扩展一个集合。
source§

fn extend_reserve(&mut self, additional: usize)

🔬This is a nightly-only experimental API. (extend_one #72631)
在集合中为给定数量的附加元素保留容量。 Read more
1.28.0 · source§

impl<'a> From<&'a OsString> for Cow<'a, OsStr>

source§

fn from(s: &'a OsString) -> Cow<'a, OsStr>

将字符串引用转换为 Cow::Borrowed

source§

impl<T: ?Sized + AsRef<OsStr>> From<&T> for OsString

source§

fn from(s: &T) -> OsString

将实现 AsRef<OsStr> 的任何值复制到新分配的 OsString 中。

1.18.0 · source§

impl From<Box<OsStr, Global>> for OsString

source§

fn from(boxed: Box<OsStr>) -> OsString

Box<OsStr> 转换为 OsString,而无需复制或分配。

1.28.0 · source§

impl<'a> From<Cow<'a, OsStr>> for OsString

source§

fn from(s: Cow<'a, OsStr>) -> Self

通过复制借用的内容将 Cow<'a, OsStr> 转换为 OsString

1.24.0 · source§

impl From<OsString> for Arc<OsStr>

source§

fn from(s: OsString) -> Arc<OsStr>

通过将 OsString 数据移动到新的 Arc 缓冲区中,将 OsString 转换为 Arc<OsStr>

1.20.0 · source§

impl From<OsString> for Box<OsStr>

source§

fn from(s: OsString) -> Box<OsStr>

OsString 转换为 Box<OsStr>,而无需复制或分配。

1.28.0 · source§

impl<'a> From<OsString> for Cow<'a, OsStr>

source§

fn from(s: OsString) -> Cow<'a, OsStr>

将字符串移动到 Cow::Owned 中。

source§

impl From<OsString> for PathBuf

source§

fn from(s: OsString) -> PathBuf

OsString 转换为 PathBuf

此转换不会分配或复制内存。

1.24.0 · source§

impl From<OsString> for Rc<OsStr>

source§

fn from(s: OsString) -> Rc<OsStr>

通过将 OsString 数据移动到新的 Rc 缓冲区中,将 OsString 转换为 Rc<OsStr>

1.14.0 · source§

impl From<PathBuf> for OsString

source§

fn from(path_buf: PathBuf) -> OsString

PathBuf 转换为 OsString

此转换不会分配或复制内存。

source§

impl From<String> for OsString

source§

fn from(s: String) -> OsString

String 转换为 OsString

此转换不会分配或复制内存。

1.52.0 · source§

impl<'a> FromIterator<&'a OsStr> for OsString

source§

fn from_iter<I: IntoIterator<Item = &'a OsStr>>(iter: I) -> Self

从迭代器创建一个值。 Read more
1.52.0 · source§

impl<'a> FromIterator<Cow<'a, OsStr>> for OsString

source§

fn from_iter<I: IntoIterator<Item = Cow<'a, OsStr>>>(iter: I) -> Self

从迭代器创建一个值。 Read more
1.52.0 · source§

impl FromIterator<OsString> for OsString

source§

fn from_iter<I: IntoIterator<Item = OsString>>(iter: I) -> Self

从迭代器创建一个值。 Read more
1.45.0 · source§

impl FromStr for OsString

§

type Err = Infallible

可以从解析中返回的相关错误。
source§

fn from_str(s: &str) -> Result<Self, Self::Err>

解析字符串 s 以返回此类型的值。 Read more
source§

impl Hash for OsString

source§

fn hash<H: Hasher>(&self, state: &mut H)

将该值输入给定的 HasherRead more
1.3.0 · source§

fn hash_slice<H>(data: &[Self], state: &mut H)where H: Hasher, Self: Sized,

将这种类型的切片送入给定的 Hasher 中。 Read more
source§

impl Index<RangeFull> for OsString

§

type Output = OsStr

索引后返回的类型。
source§

fn index(&self, _index: RangeFull) -> &OsStr

执行索引 (container[index]) 操作。 Read more
1.44.0 · source§

impl IndexMut<RangeFull> for OsString

source§

fn index_mut(&mut self, _index: RangeFull) -> &mut OsStr

执行可变索引 (container[index]) 操作。 Read more
source§

impl Ord for OsString

source§

fn cmp(&self, other: &OsString) -> Ordering

此方法返回 selfother 之间的 OrderingRead more
1.21.0 · source§

fn max(self, other: Self) -> Selfwhere Self: Sized,

比较并返回两个值中的最大值。 Read more
1.21.0 · source§

fn min(self, other: Self) -> Selfwhere Self: Sized,

比较并返回两个值中的最小值。 Read more
1.50.0 · source§

fn clamp(self, min: Self, max: Self) -> Selfwhere Self: Sized + PartialOrd<Self>,

将值限制在某个时间间隔内。 Read more
source§

impl OsStringExt for OsString

Available on Unix only.
source§

fn from_vec(vec: Vec<u8>) -> OsString

从字节 vector 创建 OsStringRead more
source§

fn into_vec(self) -> Vec<u8>

产生此 OsString 的底层字节 vector。 Read more
source§

impl OsStringExt for OsString

Available on WASI only.
source§

fn from_vec(vec: Vec<u8>) -> OsString

从字节 vector 创建 OsStringRead more
source§

fn into_vec(self) -> Vec<u8>

产生此 OsString 的底层字节 vector。 Read more
source§

impl OsStringExt for OsString

Available on Windows only.
source§

fn from_wide(wide: &[u16]) -> OsString

从可能是格式不正确的 UTF-16 切片创建 OsString 16 位代码单元。 Read more
1.8.0 · source§

impl<'a, 'b> PartialEq<&'a OsStr> for OsString

source§

fn eq(&self, other: &&'a OsStr) -> bool

此方法测试 selfother 值是否相等,并由 == 使用。
source§

fn ne(&self, other: &Rhs) -> bool

此方法测试 !=。 默认实现几乎总是足够的,并且不应在没有充分理由的情况下被覆盖。
1.8.0 · source§

impl<'a> PartialEq<&'a Path> for OsString

source§

fn eq(&self, other: &&'a Path) -> bool

此方法测试 selfother 值是否相等,并由 == 使用。
source§

fn ne(&self, other: &Rhs) -> bool

此方法测试 !=。 默认实现几乎总是足够的,并且不应在没有充分理由的情况下被覆盖。
1.29.0 · source§

impl PartialEq<&str> for OsString

source§

fn eq(&self, other: &&str) -> bool

此方法测试 selfother 值是否相等,并由 == 使用。
source§

fn ne(&self, other: &Rhs) -> bool

此方法测试 !=。 默认实现几乎总是足够的,并且不应在没有充分理由的情况下被覆盖。
1.8.0 · source§

impl<'a, 'b> PartialEq<Cow<'a, OsStr>> for OsString

source§

fn eq(&self, other: &Cow<'a, OsStr>) -> bool

此方法测试 selfother 值是否相等,并由 == 使用。
source§

fn ne(&self, other: &Rhs) -> bool

此方法测试 !=。 默认实现几乎总是足够的,并且不应在没有充分理由的情况下被覆盖。
1.8.0 · source§

impl<'a> PartialEq<Cow<'a, Path>> for OsString

source§

fn eq(&self, other: &Cow<'a, Path>) -> bool

此方法测试 selfother 值是否相等,并由 == 使用。
source§

fn ne(&self, other: &Rhs) -> bool

此方法测试 !=。 默认实现几乎总是足够的,并且不应在没有充分理由的情况下被覆盖。
1.8.0 · source§

impl<'a, 'b> PartialEq<OsStr> for OsString

source§

fn eq(&self, other: &OsStr) -> bool

此方法测试 selfother 值是否相等,并由 == 使用。
source§

fn ne(&self, other: &Rhs) -> bool

此方法测试 !=。 默认实现几乎总是足够的,并且不应在没有充分理由的情况下被覆盖。
1.8.0 · source§

impl<'a, 'b> PartialEq<OsString> for &'a OsStr

source§

fn eq(&self, other: &OsString) -> bool

此方法测试 selfother 值是否相等,并由 == 使用。
source§

fn ne(&self, other: &Rhs) -> bool

此方法测试 !=。 默认实现几乎总是足够的,并且不应在没有充分理由的情况下被覆盖。
1.8.0 · source§

impl<'a> PartialEq<OsString> for &'a Path

source§

fn eq(&self, other: &OsString) -> bool

此方法测试 selfother 值是否相等,并由 == 使用。
source§

fn ne(&self, other: &Rhs) -> bool

此方法测试 !=。 默认实现几乎总是足够的,并且不应在没有充分理由的情况下被覆盖。
1.29.0 · source§

impl<'a> PartialEq<OsString> for &'a str

source§

fn eq(&self, other: &OsString) -> bool

此方法测试 selfother 值是否相等,并由 == 使用。
source§

fn ne(&self, other: &Rhs) -> bool

此方法测试 !=。 默认实现几乎总是足够的,并且不应在没有充分理由的情况下被覆盖。
1.8.0 · source§

impl<'a, 'b> PartialEq<OsString> for Cow<'a, OsStr>

source§

fn eq(&self, other: &OsString) -> bool

此方法测试 selfother 值是否相等,并由 == 使用。
source§

fn ne(&self, other: &Rhs) -> bool

此方法测试 !=。 默认实现几乎总是足够的,并且不应在没有充分理由的情况下被覆盖。
1.8.0 · source§

impl<'a> PartialEq<OsString> for Cow<'a, Path>

source§

fn eq(&self, other: &OsString) -> bool

此方法测试 selfother 值是否相等,并由 == 使用。
source§

fn ne(&self, other: &Rhs) -> bool

此方法测试 !=。 默认实现几乎总是足够的,并且不应在没有充分理由的情况下被覆盖。
1.8.0 · source§

impl<'a, 'b> PartialEq<OsString> for OsStr

source§

fn eq(&self, other: &OsString) -> bool

此方法测试 selfother 值是否相等,并由 == 使用。
source§

fn ne(&self, other: &Rhs) -> bool

此方法测试 !=。 默认实现几乎总是足够的,并且不应在没有充分理由的情况下被覆盖。
source§

impl PartialEq<OsString> for OsString

source§

fn eq(&self, other: &OsString) -> bool

此方法测试 selfother 值是否相等,并由 == 使用。
source§

fn ne(&self, other: &Rhs) -> bool

此方法测试 !=。 默认实现几乎总是足够的,并且不应在没有充分理由的情况下被覆盖。
1.8.0 · source§

impl PartialEq<OsString> for Path

source§

fn eq(&self, other: &OsString) -> bool

此方法测试 selfother 值是否相等,并由 == 使用。
source§

fn ne(&self, other: &Rhs) -> bool

此方法测试 !=。 默认实现几乎总是足够的,并且不应在没有充分理由的情况下被覆盖。
1.8.0 · source§

impl PartialEq<OsString> for PathBuf

source§

fn eq(&self, other: &OsString) -> bool

此方法测试 selfother 值是否相等,并由 == 使用。
source§

fn ne(&self, other: &Rhs) -> bool

此方法测试 !=。 默认实现几乎总是足够的,并且不应在没有充分理由的情况下被覆盖。
source§

impl PartialEq<OsString> for str

source§

fn eq(&self, other: &OsString) -> bool

此方法测试 selfother 值是否相等,并由 == 使用。
source§

fn ne(&self, other: &Rhs) -> bool

此方法测试 !=。 默认实现几乎总是足够的,并且不应在没有充分理由的情况下被覆盖。
1.8.0 · source§

impl PartialEq<Path> for OsString

source§

fn eq(&self, other: &Path) -> bool

此方法测试 selfother 值是否相等,并由 == 使用。
source§

fn ne(&self, other: &Rhs) -> bool

此方法测试 !=。 默认实现几乎总是足够的,并且不应在没有充分理由的情况下被覆盖。
1.8.0 · source§

impl PartialEq<PathBuf> for OsString

source§

fn eq(&self, other: &PathBuf) -> bool

此方法测试 selfother 值是否相等,并由 == 使用。
source§

fn ne(&self, other: &Rhs) -> bool

此方法测试 !=。 默认实现几乎总是足够的,并且不应在没有充分理由的情况下被覆盖。
source§

impl PartialEq<str> for OsString

source§

fn eq(&self, other: &str) -> bool

此方法测试 selfother 值是否相等,并由 == 使用。
source§

fn ne(&self, other: &Rhs) -> bool

此方法测试 !=。 默认实现几乎总是足够的,并且不应在没有充分理由的情况下被覆盖。
1.8.0 · source§

impl<'a, 'b> PartialOrd<&'a OsStr> for OsString

source§

fn partial_cmp(&self, other: &&'a OsStr) -> Option<Ordering>

如果存在,则此方法返回 selfother 值之间的顺序。 Read more
source§

fn lt(&self, other: &Rhs) -> bool

此方法测试的内容少于 (对于 selfother),并且由 < 操作员使用。 Read more
source§

fn le(&self, other: &Rhs) -> bool

此方法测试小于或等于 (对于 selfother),并且由 <= 运算符使用。 Read more
source§

fn gt(&self, other: &Rhs) -> bool

此方法测试大于 (对于 selfother),并且由 > 操作员使用。 Read more
source§

fn ge(&self, other: &Rhs) -> bool

此方法测试是否大于或等于 (对于 selfother),并且由 >= 运算符使用。 Read more
1.8.0 · source§

impl<'a> PartialOrd<&'a Path> for OsString

source§

fn partial_cmp(&self, other: &&'a Path) -> Option<Ordering>

如果存在,则此方法返回 selfother 值之间的顺序。 Read more
source§

fn lt(&self, other: &Rhs) -> bool

此方法测试的内容少于 (对于 selfother),并且由 < 操作员使用。 Read more
source§

fn le(&self, other: &Rhs) -> bool

此方法测试小于或等于 (对于 selfother),并且由 <= 运算符使用。 Read more
source§

fn gt(&self, other: &Rhs) -> bool

此方法测试大于 (对于 selfother),并且由 > 操作员使用。 Read more
source§

fn ge(&self, other: &Rhs) -> bool

此方法测试是否大于或等于 (对于 selfother),并且由 >= 运算符使用。 Read more
1.8.0 · source§

impl<'a, 'b> PartialOrd<Cow<'a, OsStr>> for OsString

source§

fn partial_cmp(&self, other: &Cow<'a, OsStr>) -> Option<Ordering>

如果存在,则此方法返回 selfother 值之间的顺序。 Read more
source§

fn lt(&self, other: &Rhs) -> bool

此方法测试的内容少于 (对于 selfother),并且由 < 操作员使用。 Read more
source§

fn le(&self, other: &Rhs) -> bool

此方法测试小于或等于 (对于 selfother),并且由 <= 运算符使用。 Read more
source§

fn gt(&self, other: &Rhs) -> bool

此方法测试大于 (对于 selfother),并且由 > 操作员使用。 Read more
source§

fn ge(&self, other: &Rhs) -> bool

此方法测试是否大于或等于 (对于 selfother),并且由 >= 运算符使用。 Read more
1.8.0 · source§

impl<'a> PartialOrd<Cow<'a, Path>> for OsString

source§

fn partial_cmp(&self, other: &Cow<'a, Path>) -> Option<Ordering>

如果存在,则此方法返回 selfother 值之间的顺序。 Read more
source§

fn lt(&self, other: &Rhs) -> bool

此方法测试的内容少于 (对于 selfother),并且由 < 操作员使用。 Read more
source§

fn le(&self, other: &Rhs) -> bool

此方法测试小于或等于 (对于 selfother),并且由 <= 运算符使用。 Read more
source§

fn gt(&self, other: &Rhs) -> bool

此方法测试大于 (对于 selfother),并且由 > 操作员使用。 Read more
source§

fn ge(&self, other: &Rhs) -> bool

此方法测试是否大于或等于 (对于 selfother),并且由 >= 运算符使用。 Read more
1.8.0 · source§

impl<'a, 'b> PartialOrd<OsStr> for OsString

source§

fn partial_cmp(&self, other: &OsStr) -> Option<Ordering>

如果存在,则此方法返回 selfother 值之间的顺序。 Read more
source§

fn lt(&self, other: &Rhs) -> bool

此方法测试的内容少于 (对于 selfother),并且由 < 操作员使用。 Read more
source§

fn le(&self, other: &Rhs) -> bool

此方法测试小于或等于 (对于 selfother),并且由 <= 运算符使用。 Read more
source§

fn gt(&self, other: &Rhs) -> bool

此方法测试大于 (对于 selfother),并且由 > 操作员使用。 Read more
source§

fn ge(&self, other: &Rhs) -> bool

此方法测试是否大于或等于 (对于 selfother),并且由 >= 运算符使用。 Read more
1.8.0 · source§

impl<'a, 'b> PartialOrd<OsString> for &'a OsStr

source§

fn partial_cmp(&self, other: &OsString) -> Option<Ordering>

如果存在,则此方法返回 selfother 值之间的顺序。 Read more
source§

fn lt(&self, other: &Rhs) -> bool

此方法测试的内容少于 (对于 selfother),并且由 < 操作员使用。 Read more
source§

fn le(&self, other: &Rhs) -> bool

此方法测试小于或等于 (对于 selfother),并且由 <= 运算符使用。 Read more
source§

fn gt(&self, other: &Rhs) -> bool

此方法测试大于 (对于 selfother),并且由 > 操作员使用。 Read more
source§

fn ge(&self, other: &Rhs) -> bool

此方法测试是否大于或等于 (对于 selfother),并且由 >= 运算符使用。 Read more
1.8.0 · source§

impl<'a> PartialOrd<OsString> for &'a Path

source§

fn partial_cmp(&self, other: &OsString) -> Option<Ordering>

如果存在,则此方法返回 selfother 值之间的顺序。 Read more
source§

fn lt(&self, other: &Rhs) -> bool

此方法测试的内容少于 (对于 selfother),并且由 < 操作员使用。 Read more
source§

fn le(&self, other: &Rhs) -> bool

此方法测试小于或等于 (对于 selfother),并且由 <= 运算符使用。 Read more
source§

fn gt(&self, other: &Rhs) -> bool

此方法测试大于 (对于 selfother),并且由 > 操作员使用。 Read more
source§

fn ge(&self, other: &Rhs) -> bool

此方法测试是否大于或等于 (对于 selfother),并且由 >= 运算符使用。 Read more
1.8.0 · source§

impl<'a, 'b> PartialOrd<OsString> for Cow<'a, OsStr>

source§

fn partial_cmp(&self, other: &OsString) -> Option<Ordering>

如果存在,则此方法返回 selfother 值之间的顺序。 Read more
source§

fn lt(&self, other: &Rhs) -> bool

此方法测试的内容少于 (对于 selfother),并且由 < 操作员使用。 Read more
source§

fn le(&self, other: &Rhs) -> bool

此方法测试小于或等于 (对于 selfother),并且由 <= 运算符使用。 Read more
source§

fn gt(&self, other: &Rhs) -> bool

此方法测试大于 (对于 selfother),并且由 > 操作员使用。 Read more
source§

fn ge(&self, other: &Rhs) -> bool

此方法测试是否大于或等于 (对于 selfother),并且由 >= 运算符使用。 Read more
1.8.0 · source§

impl<'a> PartialOrd<OsString> for Cow<'a, Path>

source§

fn partial_cmp(&self, other: &OsString) -> Option<Ordering>

如果存在,则此方法返回 selfother 值之间的顺序。 Read more
source§

fn lt(&self, other: &Rhs) -> bool

此方法测试的内容少于 (对于 selfother),并且由 < 操作员使用。 Read more
source§

fn le(&self, other: &Rhs) -> bool

此方法测试小于或等于 (对于 selfother),并且由 <= 运算符使用。 Read more
source§

fn gt(&self, other: &Rhs) -> bool

此方法测试大于 (对于 selfother),并且由 > 操作员使用。 Read more
source§

fn ge(&self, other: &Rhs) -> bool

此方法测试是否大于或等于 (对于 selfother),并且由 >= 运算符使用。 Read more
1.8.0 · source§

impl<'a, 'b> PartialOrd<OsString> for OsStr

source§

fn partial_cmp(&self, other: &OsString) -> Option<Ordering>

如果存在,则此方法返回 selfother 值之间的顺序。 Read more
source§

fn lt(&self, other: &Rhs) -> bool

此方法测试的内容少于 (对于 selfother),并且由 < 操作员使用。 Read more
source§

fn le(&self, other: &Rhs) -> bool

此方法测试小于或等于 (对于 selfother),并且由 <= 运算符使用。 Read more
source§

fn gt(&self, other: &Rhs) -> bool

此方法测试大于 (对于 selfother),并且由 > 操作员使用。 Read more
source§

fn ge(&self, other: &Rhs) -> bool

此方法测试是否大于或等于 (对于 selfother),并且由 >= 运算符使用。 Read more
source§

impl PartialOrd<OsString> for OsString

source§

fn partial_cmp(&self, other: &OsString) -> Option<Ordering>

如果存在,则此方法返回 selfother 值之间的顺序。 Read more
source§

fn lt(&self, other: &OsString) -> bool

此方法测试的内容少于 (对于 selfother),并且由 < 操作员使用。 Read more
source§

fn le(&self, other: &OsString) -> bool

此方法测试小于或等于 (对于 selfother),并且由 <= 运算符使用。 Read more
source§

fn gt(&self, other: &OsString) -> bool

此方法测试大于 (对于 selfother),并且由 > 操作员使用。 Read more
source§

fn ge(&self, other: &OsString) -> bool

此方法测试是否大于或等于 (对于 selfother),并且由 >= 运算符使用。 Read more
1.8.0 · source§

impl PartialOrd<OsString> for Path

source§

fn partial_cmp(&self, other: &OsString) -> Option<Ordering>

如果存在,则此方法返回 selfother 值之间的顺序。 Read more
source§

fn lt(&self, other: &Rhs) -> bool

此方法测试的内容少于 (对于 selfother),并且由 < 操作员使用。 Read more
source§

fn le(&self, other: &Rhs) -> bool

此方法测试小于或等于 (对于 selfother),并且由 <= 运算符使用。 Read more
source§

fn gt(&self, other: &Rhs) -> bool

此方法测试大于 (对于 selfother),并且由 > 操作员使用。 Read more
source§

fn ge(&self, other: &Rhs) -> bool

此方法测试是否大于或等于 (对于 selfother),并且由 >= 运算符使用。 Read more
1.8.0 · source§

impl PartialOrd<OsString> for PathBuf

source§

fn partial_cmp(&self, other: &OsString) -> Option<Ordering>

如果存在,则此方法返回 selfother 值之间的顺序。 Read more
source§

fn lt(&self, other: &Rhs) -> bool

此方法测试的内容少于 (对于 selfother),并且由 < 操作员使用。 Read more
source§

fn le(&self, other: &Rhs) -> bool

此方法测试小于或等于 (对于 selfother),并且由 <= 运算符使用。 Read more
source§

fn gt(&self, other: &Rhs) -> bool

此方法测试大于 (对于 selfother),并且由 > 操作员使用。 Read more
source§

fn ge(&self, other: &Rhs) -> bool

此方法测试是否大于或等于 (对于 selfother),并且由 >= 运算符使用。 Read more
1.8.0 · source§

impl PartialOrd<Path> for OsString

source§

fn partial_cmp(&self, other: &Path) -> Option<Ordering>

如果存在,则此方法返回 selfother 值之间的顺序。 Read more
source§

fn lt(&self, other: &Rhs) -> bool

此方法测试的内容少于 (对于 selfother),并且由 < 操作员使用。 Read more
source§

fn le(&self, other: &Rhs) -> bool

此方法测试小于或等于 (对于 selfother),并且由 <= 运算符使用。 Read more
source§

fn gt(&self, other: &Rhs) -> bool

此方法测试大于 (对于 selfother),并且由 > 操作员使用。 Read more
source§

fn ge(&self, other: &Rhs) -> bool

此方法测试是否大于或等于 (对于 selfother),并且由 >= 运算符使用。 Read more
1.8.0 · source§

impl PartialOrd<PathBuf> for OsString

source§

fn partial_cmp(&self, other: &PathBuf) -> Option<Ordering>

如果存在,则此方法返回 selfother 值之间的顺序。 Read more
source§

fn lt(&self, other: &Rhs) -> bool

此方法测试的内容少于 (对于 selfother),并且由 < 操作员使用。 Read more
source§

fn le(&self, other: &Rhs) -> bool

此方法测试小于或等于 (对于 selfother),并且由 <= 运算符使用。 Read more
source§

fn gt(&self, other: &Rhs) -> bool

此方法测试大于 (对于 selfother),并且由 > 操作员使用。 Read more
source§

fn ge(&self, other: &Rhs) -> bool

此方法测试是否大于或等于 (对于 selfother),并且由 >= 运算符使用。 Read more
source§

impl PartialOrd<str> for OsString

source§

fn partial_cmp(&self, other: &str) -> Option<Ordering>

如果存在,则此方法返回 selfother 值之间的顺序。 Read more
source§

fn lt(&self, other: &Rhs) -> bool

此方法测试的内容少于 (对于 selfother),并且由 < 操作员使用。 Read more
source§

fn le(&self, other: &Rhs) -> bool

此方法测试小于或等于 (对于 selfother),并且由 <= 运算符使用。 Read more
source§

fn gt(&self, other: &Rhs) -> bool

此方法测试大于 (对于 selfother),并且由 > 操作员使用。 Read more
source§

fn ge(&self, other: &Rhs) -> bool

此方法测试是否大于或等于 (对于 selfother),并且由 >= 运算符使用。 Read more
1.64.0 · source§

impl Write for OsString

source§

fn write_str(&mut self, s: &str) -> Result

将字符串切片写入此 writer,返回写入是否成功。 Read more
1.1.0 · source§

fn write_char(&mut self, c: char) -> Result<(), Error>

char 写入此 writer,返回写入是否成功。 Read more
source§

fn write_fmt(&mut self, args: Arguments<'_>) -> Result<(), Error>

结合使用 write! 宏和 trait 的实现者。 Read more
source§

impl Eq for OsString

Auto Trait Implementations§

Blanket Implementations§

source§

impl<T> Any for Twhere T: 'static + ?Sized,

source§

fn type_id(&self) -> TypeId

获取 selfTypeIdRead more
source§

impl<T> Borrow<T> for Twhere T: ?Sized,

source§

fn borrow(&self) -> &T

从拥有的值中一成不变地借用。 Read more
source§

impl<T> BorrowMut<T> for Twhere T: ?Sized,

source§

fn borrow_mut(&mut self) -> &mut T

从拥有的值中借用。 Read more
source§

impl<T> From<T> for T

source§

fn from(t: T) -> T

返回未更改的参数。

source§

impl<T, U> Into<U> for Twhere U: From<T>,

source§

fn into(self) -> U

调用 U::from(self)

也就是说,这种转换是 From<T> for U 实现选择执行的任何操作。

source§

impl<T> ToOwned for Twhere T: Clone,

§

type Owned = T

获得所有权后的结果类型。
source§

fn to_owned(&self) -> T

从借用的数据创建拥有的数据,通常是通过克隆。 Read more
source§

fn clone_into(&self, target: &mut T)

使用借来的数据来替换拥有的数据,通常是通过克隆。 Read more
source§

impl<T, U> TryFrom<U> for Twhere U: Into<T>,

§

type Error = Infallible

发生转换错误时返回的类型。
source§

fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>

执行转换。
source§

impl<T, U> TryInto<U> for Twhere U: TryFrom<T>,

§

type Error = <U as TryFrom<T>>::Error

发生转换错误时返回的类型。
source§

fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>

执行转换。