Trait std::fmt::Write

1.0.0 · source ·
pub trait Write {
    // Required method
    fn write_str(&mut self, s: &str) -> Result<(), Error>;

    // Provided methods
    fn write_char(&mut self, c: char) -> Result<(), Error> { ... }
    fn write_fmt(&mut self, args: Arguments<'_>) -> Result<(), Error> { ... }
}
Expand description

一个用于写入或格式化为 Unicode 接受的缓冲区或流的 trait。

一个只接受 UTF-8 编码的数据,而不是 flushable 的 trait。 如果您只想接受 Unicode 且不需要冲洗,则应实现此 trait; 否则,请执行此操作。 否则,您应该实现 std::io::Write

Required Methods§

source

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

将字符串切片写入此 writer,返回写入是否成功。

仅当成功写入整个字符串切片后,此方法才能成功,并且只有在写入所有数据或发生错误后,该方法才会返回。

Errors

错误时,此函数将返回 Error 的实例。

std::fmt::Error 的目的是在底层目的地遇到一些错误阻止它接受更多文本时中止格式化操作; 通常应该传播而不是处理它,至少在实现格式化 traits 时。

Examples
use std::fmt::{Error, Write};

fn writer<W: Write>(f: &mut W, s: &str) -> Result<(), Error> {
    f.write_str(s)
}

let mut buf = String::new();
writer(&mut buf, "hola").unwrap();
assert_eq!(&buf, "hola");
Run

Provided Methods§

1.1.0 · source

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

char 写入此 writer,返回写入是否成功。

单个 char 可以被编码为一个以上的字节。 仅当成功写入了整个字节序列后,此方法才能成功,并且直到所有数据都已写入或发生错误后,该方法才会返回。

Errors

错误时,此函数将返回 Error 的实例。

Examples
use std::fmt::{Error, Write};

fn writer<W: Write>(f: &mut W, c: char) -> Result<(), Error> {
    f.write_char(c)
}

let mut buf = String::new();
writer(&mut buf, 'a').unwrap();
writer(&mut buf, 'b').unwrap();
assert_eq!(&buf, "ab");
Run
source

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

结合使用 write! 宏和 trait 的实现者。

通常不应手动调用此方法,而应通过 write! 宏本身来调用。

Errors

错误时,此函数将返回 Error 的实例。 详情请参见 write_str

Examples
use std::fmt::{Error, Write};

fn writer<W: Write>(f: &mut W, s: &str) -> Result<(), Error> {
    f.write_fmt(format_args!("{s}"))
}

let mut buf = String::new();
writer(&mut buf, "world").unwrap();
assert_eq!(&buf, "world");
Run

Implementors§

1.64.0 · source§

impl Write for OsString

source§

impl Write for String

1.2.0 · source§

impl Write for Formatter<'_>

1.4.0 · source§

impl<W> Write for &mut Wwhere W: Write + ?Sized,