Function std::ascii::escape_default 1.26.0
[−]
[src]
ⓘImportant traits for EscapeDefault
pub fn escape_default(c: u8) -> EscapeDefault
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
..0x7e
inclusive 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());Run