http_uri
This crate exports types for that represents http uri and some of it's invariants.
All types are wrappers around [uriparse::URI] type, and enforces their corresponding invariants
- [
HttpUri]: It guarantees uri is valid, http(s), with valid host - [
invariant::normal::NormalHttpUri]: Invariant of [HttpUri] that guarantees, the inner uri is a normalized http uri. Check type docs for what it entails to be normal
There are few other invariants based on presence/absence of certain components in modules invariant::with_component::*, invariant::sans_component::*.
One can chain invariants, to get their desired mixin, like fallowing:
NormalHttpUri<HttpUriSansFragment<HttpUri>>: Invariant for http uris, which doesn't have fragment, and also in their normal form