string_inspector/
lib.rs

1//! Utilities for inspecting unicode strings.
2//!
3//! # Usage
4//! Use [DecodedString](decoding/struct.DecodedString.html) to wrap a sequence of bytes and a [rust-encoding](https://lifthrasiir.github.io/rust-encoding/) encoding.
5//! ```
6//! let bytes = [65, 66, 67];
7//! let string = string_inspector::DecodedString::decode(&bytes, encoding::all::ISO_8859_2).unwrap();
8//!
9//! assert_eq!("ABC", string.to_string());
10//! assert_eq!("\u{1b}[32mA  \u{1b}[0m\u{1b}[34mB  \u{1b}[0m\u{1b}[32mC  \u{1b}[0m", string.format_characters());
11//! assert_eq!("\u{1b}[32m41 \u{1b}[0m\u{1b}[34m42 \u{1b}[0m\u{1b}[32m43 \u{1b}[0m", string.format_bytes());
12//! ```
13//!
14//! [DecodedString](decoding/struct.DecodedString.html) contains a sequence of [DecodedCharacters](decoding/struct.DecodedCharacter.html), which retain the original byte representation:
15//! ```
16//! let bytes = [65, 66, 67];
17//! let string = string_inspector::DecodedString::decode(&bytes, encoding::all::ISO_8859_2).unwrap();
18//!
19//! assert_eq!(3, string.characters.len());
20//! assert_eq!('A', string.characters[0].character);
21//! assert_eq!(vec![65], string.characters[0].bytes);
22//! ```
23//!
24pub mod cli;
25pub mod decoding;
26
27pub use decoding::DecodedCharacter;
28pub use decoding::DecodedString;