Rocket/core/codegen
Sergio Benitez b7db74144f Parameterize 'UriDisplay' with 'Path' or 'Query'.
This commit introduces the sealed `UriPart` marker trait as well as the
implementing `Path` and `Query` marker types, allowing for parts of a
URI to be distinguished at the type level. Consequently, `UriDisplay`
has been parameterized with `P: UriPart`, creating `UriDisplay<Path>`
and `UriDisplay<Query>`. The effect of this change is improved type
safely for URI rendering as well as the ability to omit rendering values
in query parts via `Option` and `Result`.

The `UriDisplay` derive was replaced by `UriDisplayQuery` and
`UriDisplayPath` which derive implementations for `UriDisplay<Path>`
and `UriDisplay<Query>`, respectively.

This commit also works around a rustdoc visibility issue by creating a
hidden `http::private` module.

Finally, this commit also removes the now vestigial use of the
`rustc_private` feature in codegen.

Fixes #827.
2018-11-27 10:01:47 -06:00
..
src Parameterize 'UriDisplay' with 'Path' or 'Query'. 2018-11-27 10:01:47 -06:00
tests Parameterize 'UriDisplay' with 'Path' or 'Query'. 2018-11-27 10:01:47 -06:00
Cargo.toml Parameterize 'UriDisplay' with 'Path' or 'Query'. 2018-11-27 10:01:47 -06:00
build.rs Use upstream 'Literal::subspan()'. 2018-11-23 19:15:13 -06:00