extern crate pct_str;
use pct_str::{PctString, UriReserved};
struct CustomEncoder;
impl pct_str::Encoder for CustomEncoder {
fn encode(&self, c: char) -> bool {
UriReserved::Any.encode(c) || c.is_uppercase()
}
}
fn main() {
let pct_string = PctString::encode("Hello World!".chars(), UriReserved::Any);
assert_eq!(pct_string.as_str(), "Hello World%21");
let pct_string = PctString::encode("Hello World!".chars(), CustomEncoder);
println!("{}", pct_string.as_str());
assert_eq!(pct_string.as_str(), "%48ello %57orld%21");
let pct_string = PctString::encode("Hello World!".chars(), char::is_uppercase);
assert_eq!(pct_string.as_str(), "%48ello %57orld!");
}