# Function escape_default

1.0.0 · Source

    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` .. `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());