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 = "<div name='htmlentity'>Hello!世界!</div>";
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;