use unconst::unconst;
pub use repr::{
Repr,
constants::{EMPTY, DIGIT, SPACE, WORD as ALPHA},
};
#[unconst]
pub const SUB_DELIMS: Repr<char>
= EMPTY * '!' | '$' | '&' | '\'' | '(' | ')' | '*' | '+' | ',' | ';' | '=';
#[unconst]
pub const PCT_ENCODED: Repr<char> = '%' * HEXDIG * HEXDIG;
#[unconst]
pub const UNRESERVED: Repr<char>
= ALPHA | DIGIT | '-' | '.' | '_' | '~' | UCSCHAR;
#[unconst]
pub const USERINFO: Repr<char>
= (UNRESERVED | PCT_ENCODED | SUB_DELIMS | ':').exp();
#[unconst]
pub const AUTHORITY: Repr<char> = (USERINFO * '@')? * ihost * (':' * port);
#[unconst]
pub const HIER_PART: Repr<char>
= "//" * AUTHORITY * ipath_abempty
| ipath_absolute
| ipath_rootless
| ipath_empty;
pub const SCHEME: Repr<char> = ALPHA * (ALPHA | DIGIT | '+' | '-' | '.').exp();
pub const IRI: Repr<char>
= SCHEME * ':' * HIER_PART * ('?' * iquery)? * ('#' * ifragment)?;