Skip to content

Rust Crate to convert an unescaped &str or raw &str to a String literal with escape chars

License

Notifications You must be signed in to change notification settings

blvess/unicode_escape

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

18 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

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

bytes(<input>, 'ascii').decode('unicode_escape')

Installation

To use this crate, add the following dependency to your Cargo.toml file:

[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:

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<String, DecodeError> 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:

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 file.

About

Rust Crate to convert an unescaped &str or raw &str to a String literal with escape chars

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages