htmlentity/
lib.rs

1//! # htmlentity crate
2//!
3//! A library for encoding and decoding HTML entities.
4//!
5//! # Examples
6//!
7//! ```
8//! use htmlentity::entity::{
9//!     encode, decode,
10//!     EncodeType, CharacterSet, ICodedDataTrait
11//! };
12//! use htmlentity::types::{ AnyhowResult, Byte };
13//! # fn main() -> AnyhowResult<()> {
14//! let html = "<div name='htmlentity'>Hello!世界!</div>";
15//! let html_after_encoded = "&lt;div name='htmlentity'&gt;Hello!&#x4e16;&#x754c;!&lt;/div&gt;";
16//! // encode
17//! let encoded_data = encode(
18//!     html.as_bytes(),
19//!     &EncodeType::NamedOrHex,
20//!     &CharacterSet::HtmlAndNonASCII
21//! );
22//! // encoded data to bytes
23//! assert_eq!(
24//!     encoded_data.to_bytes(),
25//!     html_after_encoded.as_bytes()
26//! );
27//! // encoded data to string
28//! assert_eq!(
29//!     encoded_data.to_string()?,
30//!     String::from(html_after_encoded)
31//! );
32//! // encoded data to chars
33//! assert_eq!(
34//!     encoded_data.to_chars()?,
35//!     String::from(html_after_encoded).chars().collect::<Vec<char>>()
36//! );
37//! // decode
38//! let bytes = encoded_data
39//!     .into_iter()
40//!     .map(|(byte, _)| *byte)
41//!     .collect::<Vec<Byte>>();
42//! let decoded_data = decode(&bytes);
43//! // decoded data to bytes
44//! assert_eq!(
45//!     decoded_data.to_bytes(),
46//!     html.as_bytes()
47//! );
48//! // decoded data to string
49//! assert_eq!(
50//!     decoded_data.to_string()?,
51//!     String::from(html)
52//! );
53//! // decoded data to chars
54//! assert_eq!(
55//!     decoded_data.to_chars()?,
56//!     String::from(html).chars().collect::<Vec<char>>()
57//! );
58//! # Ok(())
59//! # }
60//! ```
61/// The html entities data.
62pub mod data;
63/// The library main module.
64pub mod entity;
65/// The library's types.
66pub mod types;