escape-bytes 0.1.1

Escapes bytes that are not printable ASCII characters.
Documentation
  • Coverage
  • 100%
    19 out of 19 items documented3 out of 3 items with examples
  • Size
  • Source code size: 63.05 kB This is the summed size of all the files inside the crates.io package for this release.
  • Documentation size: 4.02 MB This is the summed size of all files generated by rustdoc for all configured targets
  • Ø build duration
  • this release: 9s Average build duration of successful builds.
  • all releases: 9s Average build duration of successful builds in releases after 2024-10-23.
  • Links
  • Homepage
  • stellar/escape-bytes
    1 1 1
  • crates.io
  • Dependencies
  • Versions
  • Owners
  • stellar-crates

escape-bytes

Escapes bytes that are not printable ASCII characters.

The exact rules are:

  • Nul is escaped as \0.
  • Tab is escaped as \t.
  • Line feed is escaped as \n.
  • Carriage return is escaed as \r.
  • Backslach is escaped as \\.
  • Any character in the printable ASCII range 0x20..=0x7e is not escaped.
  • Any other character is hex escaped in the form \xNN.

Intended for use where byte sequences are not valid ASCII or UTF-8 but need to be stored in a semi-human readable form where only ASCII or UTF-8 are permitted.

Examples

Escape

let str = b"hello\xc3world";
let escaped = escape_bytes::escape(str);
assert_eq!(escaped, br"hello\xc3world");

Unescape

let escaped = br"hello\xc3world";
let unescaped = escape_bytes::unescape(escaped)?;
assert_eq!(unescaped, b"hello\xc3world");

License: Apache-2.0