pub fn escape_default(c: u8) -> EscapeDefault ⓘExpand description
Returns an iterator that produces an escaped version of a u8.
The default is chosen with a bias toward producing literals that are legal in a variety of languages, including C++11 and similar C-family languages. The exact rules are:
- Tab is escaped as \t.
- Carriage return is escaped as \r.
- Line feed is escaped as \n.
- Single quote is escaped as \'.
- Double quote is escaped as \".
- Backslash is escaped as \\.
- Any character in the ‘printable ASCII’ range 0x20..0x7einclusive is not escaped.
- Any other chars are given hex escapes of the form ‘\xNN’.
- Unicode escapes are never generated by this function.
§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());