# Unicode string escape
A Rust crate for decoding escape sequences in strings.
## Overview
This crate provides a simple way to decode escape sequences in Rust strings. It supports various types of escape sequences, including simple escape sequences (e.g., `\t`, `\n`), hex escape sequences (e.g., `\x02`), and Unicode escape sequences (e.g., `\u{1A2B}`). It also handles invalid escape sequences and provides error handling and reporting.
This crate attempts to replicate the features provided by python's
```python
bytes(, 'ascii').decode('unicode_escape')
```
## Installation
To use this crate, add the following dependency to your `Cargo.toml` file:
```toml
[dependencies]
unicode_escape = "0.1.0"
```
## Usage
The crate provides a `decode` function that takes a &str with escape sequences as input and returns a decoded String. It also defines a `DecodeError` enum to represent different types of errors that can occur during decoding.
Here's an example of how to use the `decode` function:
```rust
use unicode_escape::decode;
let input = r"\r\n\tHello\u{21B5}";
let decoded = decode(input).unwrap();
println!("Decoded string: {}", decoded);
```
```
Decoded string:
Hello↵
```
In this example, the input string contains various escape sequences, including tab (`\t`), newline (`\n`), hex escape (`\x02`), and Unicode escape (`\u{21B5}`). The `decode` function will replace these escape sequences with their corresponding characters, and the decoded string will be printed.
## Error Handling
The `decode` function returns a `Result` to indicate success or failure. The `DecodeError` enum includes variants such as `InvalidEscape`, `InvalidHexChar`, and `InvalidUnicode` to provide more context about the error that occurred.
Here's an example of handling errors:
```rust
use unicode_escape::{decode, DecodeError};
let input = r"\t\r\n Hello \xGG\u{ZZZZ}";
match decode(input) {
Ok(decoded) => println!("Decoded string: {}", decoded),
Err(error) => println!("Error: {:?}", error),
}
```
In this example, the input string contains invalid hex characters (`\xGG`) and invalid Unicode escape sequences (`\u{ZZZZ}`). The `decode` function will return an `Err` value, and the error variant can be inspected to determine the specific error that occurred.
## License
This project is licensed under the MIT License. For more information, see the [LICENSE](LICENSE.md) file.