10 stable releases
2.2.0 | Sep 5, 2024 |
---|---|
2.1.1 | Aug 3, 2024 |
2.0.1 | Jul 28, 2024 |
1.2.1 | Jul 23, 2024 |
#220 in Memory management
97 downloads per month
18KB
308 lines
Unescape (zero copy)
Unescapes strings with C-style escape sequences, written to minimize memory
copying. Other crates (e.g. unescaper
)
like to allocate memory for every string, but most strings don't need any
unescaping and so can be returned as-is. This library does that.
It supports custom escape sequence parsers intead of the standard C-style escape
sequences as well; an example of this can be found in
tests/lua_escapes.rs
, using the library to parse Lua
escape sequences.
Supports no_std
by returning an iterator, or can return a Cow
that allocates
as needed with the std
or alloc
feature (std
is enabled by default).
Usage
assert_eq!(unescape_zero_copy::unescape_default(r"Hello\x0aworld").unwrap(), "Hello\nworld");
License
The code is released under the MIT license.