Struct std::str::Utf8Chunk

source ·
pub struct Utf8Chunk<'a> { /* private fields */ }
🔬This is a nightly-only experimental API. (utf8_chunks #99543)
Expand description

Utf8Chunks 迭代器返回的项。

在解码 UTF-8 字符串时,Utf8Chunk 存储一个 u8 序列,直到第一个断字符。

Examples

#![feature(utf8_chunks)]

use std::str::Utf8Chunks;

// 无效的 UTF-8 字符串
let bytes = b"foo\xF1\x80bar";

// 解码第一个 `Utf8Chunk`
let chunk = Utf8Chunks::new(bytes).next().unwrap();

// 前三个字符有效 UTF-8
assert_eq!("foo", chunk.valid());

// 第四个字符损坏了
assert_eq!(b"\xF1\x80", chunk.invalid());
Run

Implementations§

source§

impl<'a> Utf8Chunk<'a>

source

pub fn valid(&self) -> &'a str

🔬This is a nightly-only experimental API. (utf8_chunks #99543)

返回下一个经过验证的 UTF-8 子字符串。

该子字符串可以在字符串的开头为空,也可以在断开的 UTF-8 字符之间为空。

source

pub fn invalid(&self) -> &'a [u8]

🔬This is a nightly-only experimental API. (utf8_chunks #99543)

返回导致失败的无效序列。

返回的切片最大长度为 3,并在 valid 给出的子字符串之后开始。 解码将在此序列后恢复。

如果为空,则这是字符串中的最后一个块。 如果非空,则遇到意外字节或意外到达输入结尾。

有损解码将用 U+FFFD REPLACEMENT CHARACTER 替换这个序列。

Trait Implementations§

source§

impl<'a> Clone for Utf8Chunk<'a>

source§

fn clone(&self) -> Utf8Chunk<'a>

返回值的副本。 Read more
1.0.0 · source§

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

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

impl<'a> Debug for Utf8Chunk<'a>

source§

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

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

impl<'a> PartialEq<Utf8Chunk<'a>> for Utf8Chunk<'a>

source§

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

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

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

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

impl<'a> Eq for Utf8Chunk<'a>

source§

impl<'a> StructuralEq for Utf8Chunk<'a>

source§

impl<'a> StructuralPartialEq for Utf8Chunk<'a>

Auto Trait Implementations§

§

impl<'a> RefUnwindSafe for Utf8Chunk<'a>

§

impl<'a> Send for Utf8Chunk<'a>

§

impl<'a> Sync for Utf8Chunk<'a>

§

impl<'a> Unpin for Utf8Chunk<'a>

§

impl<'a> UnwindSafe for Utf8Chunk<'a>

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>

执行转换。