1extern crate pct_str;
2
3use pct_str::{PctString, UriReserved};
4
5struct CustomEncoder;
6
7impl pct_str::Encoder for CustomEncoder {
8 fn encode(&self, c: char) -> bool {
9 UriReserved::Any.encode(c) || c.is_uppercase()
10 }
11}
12
13fn main() {
14 let pct_string = PctString::encode("Hello World!".chars(), UriReserved::Any);
19 assert_eq!(pct_string.as_str(), "Hello World%21");
21
22 let pct_string = PctString::encode("Hello World!".chars(), CustomEncoder);
24 println!("{}", pct_string.as_str());
25 assert_eq!(pct_string.as_str(), "%48ello %57orld%21");
26
27 let pct_string = PctString::encode("Hello World!".chars(), char::is_uppercase);
29 assert_eq!(pct_string.as_str(), "%48ello %57orld!");
30}