use percent_encoding::{AsciiSet, CONTROLS};
const FRAGMENT: &AsciiSet = &CONTROLS.add(b' ').add(b'"').add(b'<').add(b'>').add(b'`');
const PATH: &AsciiSet = &FRAGMENT.add(b'#').add(b'?').add(b'{').add(b'}');
const USERINFO: &AsciiSet = &PATH
.add(b'/')
.add(b':')
.add(b';')
.add(b'=')
.add(b'@')
.add(b'[')
.add(b'\\')
.add(b']')
.add(b'^')
.add(b'|')
.add(b'%');
const COOKIE: &AsciiSet = &USERINFO.add(b'(').add(b')').add(b',');
pub(crate) fn encode(string: &str) -> impl std::fmt::Display + '_ {
percent_encoding::percent_encode(string.as_bytes(), COOKIE)
}