Ecosyste.ms: Awesome

An open API service indexing awesome lists of open source software.

Awesome Lists | Featured Topics | Projects

https://github.com/stellar/escape-bytes

Escapes bytes that are not printable ASCII characters.
https://github.com/stellar/escape-bytes

Last synced: 7 days ago
JSON representation

Escapes bytes that are not printable ASCII characters.

Awesome Lists containing this project

README

        

# 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

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

#### Unescape

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

License: Apache-2.0