Function core::ascii::escape_default

1.0.0 · source ·
pub fn escape_default(c: u8) -> EscapeDefault 
Expand description

返回一个迭代器,该迭代器生成 u8 的转义版本。

选择默认值时会偏向于生成在多种语言 (包括 C++ 11 和类似的 C 系列语言) 中都合法的字面量。 确切的规则是:

  • 制表符被转义为 \t
  • 回车符被转义为 \r
  • 换行符转为 \n
  • 单引号转义为 \'
  • 双引号转义为 \"
  • 反斜杠转义为 \\
  • 可打印 ASCII 范围 0x20 .. 中的任何字符 0x7e (含 0x7e) 不会转义。
  • 任何其他字符都以 ‘\xNN’ 形式给出十六进制转义。
  • 此函数从不生成 Unicode 转义。

Examples

use std::ascii;

let escaped = ascii::escape_default(b'0').next().unwrap();
assert_eq!(b'0', escaped);

let mut escaped = ascii::escape_default(b'\t');

assert_eq!(b'\\', escaped.next().unwrap());
assert_eq!(b't', escaped.next().unwrap());

let mut escaped = ascii::escape_default(b'\r');

assert_eq!(b'\\', escaped.next().unwrap());
assert_eq!(b'r', escaped.next().unwrap());

let mut escaped = ascii::escape_default(b'\n');

assert_eq!(b'\\', escaped.next().unwrap());
assert_eq!(b'n', escaped.next().unwrap());

let mut escaped = ascii::escape_default(b'\'');

assert_eq!(b'\\', escaped.next().unwrap());
assert_eq!(b'\'', escaped.next().unwrap());

let mut escaped = ascii::escape_default(b'"');

assert_eq!(b'\\', escaped.next().unwrap());
assert_eq!(b'"', escaped.next().unwrap());

let mut escaped = ascii::escape_default(b'\\');

assert_eq!(b'\\', escaped.next().unwrap());
assert_eq!(b'\\', escaped.next().unwrap());

let mut escaped = ascii::escape_default(b'\x9d');

assert_eq!(b'\\', escaped.next().unwrap());
assert_eq!(b'x', escaped.next().unwrap());
assert_eq!(b'9', escaped.next().unwrap());
assert_eq!(b'd', escaped.next().unwrap());
Run