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

  1. [HttpUri]: It guarantees uri is valid, http(s), with valid host
  2. [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:

  1. NormalHttpUri<HttpUriSansFragment<HttpUri>>: Invariant for http uris, which doesn't have fragment, and also in their normal form