2 releases
0.1.1 | Dec 1, 2023 |
---|---|
0.1.0 | Dec 1, 2023 |
0.0.1 |
|
#696 in Text processing
10,457 downloads per month
Used in 77 crates
(3 directly)
50KB
987 lines
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
lib.rs
:
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");