mirror of https://github.com/rwf2/Rocket.git
Fix a ton of broken links.
This commit is contained in:
parent
3b5f5afc6e
commit
01436d2d24
|
@ -249,7 +249,7 @@ macro_rules! route_attribute {
|
|||
///
|
||||
/// If a data guard fails, the request is forwarded if the
|
||||
/// [`Outcome`] is `Forward` or failed if the [`Outcome`] is
|
||||
/// `Failure`. See [`FromData` Outcomes] for further detail.
|
||||
/// `Failure`. See [`FromData`] for further detail.
|
||||
///
|
||||
/// If all validation succeeds, the decorated function is called.
|
||||
/// The returned value is used to generate a [`Response`] via the
|
||||
|
@ -265,14 +265,13 @@ macro_rules! route_attribute {
|
|||
/// 3. A macro used by [`uri!`] to type-check and generate an
|
||||
/// [`Origin`].
|
||||
///
|
||||
/// [`Handler`]: rocket::route::Handler
|
||||
/// [`Handler`]: ../rocket/route/trait.Handler.html
|
||||
/// [`routes!`]: macro.routes.html
|
||||
/// [`uri!`]: macro.uri.html
|
||||
/// [`Origin`]: rocket::http::uri::Origin
|
||||
/// [`Outcome`]: rocket::outcome::Outcome
|
||||
/// [`Response`]: rocket::Response
|
||||
/// [`FromRequest` Outcomes]: rocket::request::FromRequest#outcomes
|
||||
/// [`FromData` Outcomes]: rocket::data::FromData#outcomes
|
||||
/// [`Origin`]: ../rocket/http/uri/struct.Origin.html
|
||||
/// [`Outcome`]: ../rocket/outcome/enum.Outcome.html
|
||||
/// [`Response`]: ../rocket/struct.Response.html
|
||||
/// [`FromRequest` Outcomes]: ../rocket/request/trait.FromRequest.html#outcomes
|
||||
#[proc_macro_attribute]
|
||||
pub fn $name(args: TokenStream, input: TokenStream) -> TokenStream {
|
||||
emit!(attribute::route::route_attribute($method, args, input))
|
||||
|
@ -346,13 +345,13 @@ route_attribute!(options => Method::Options);
|
|||
/// name (the function's name) and status code from the route attribute or
|
||||
/// `None` if `default`. The handler is set to the generated handler.
|
||||
///
|
||||
/// [`&Request`]: rocket::Request
|
||||
/// [`Status`]: rocket::http::Status
|
||||
/// [`Handler`]: rocket::catcher::Handler
|
||||
/// [`&Request`]: ../rocket/struct.Request.html
|
||||
/// [`Status`]: ../rocket/http/struct.Status.html
|
||||
/// [`Handler`]: ../rocket/catcher/trait.Handler.html
|
||||
/// [`catchers!`]: macro.catchers.html
|
||||
/// [`Catcher`]: rocket::Catcher
|
||||
/// [`Response`]: rocket::Response
|
||||
/// [`Responder`]: rocket::Responder
|
||||
/// [`Catcher`]: ../rocket/struct.Catcher.html
|
||||
/// [`Response`]: ../rocket/struct.Response.html
|
||||
/// [`Responder`]: ../rocket/response/trait.Responder.html
|
||||
#[proc_macro_attribute]
|
||||
pub fn catch(args: TokenStream, input: TokenStream) -> TokenStream {
|
||||
emit!(attribute::catch::catch_attribute(args, input))
|
||||
|
@ -540,8 +539,7 @@ pub fn launch(args: TokenStream, input: TokenStream) -> TokenStream {
|
|||
/// variant. In the example above, the the strings `"fourth"`, `"FOUrth"`,
|
||||
/// `"fiFTH"` and so on would parse as `MyValue::Third`.
|
||||
///
|
||||
/// [`FromFormField`]: rocket::form::FromFormField
|
||||
/// [`FromFormField::Error`]: rocket::form::FromFormField::Error
|
||||
/// [`FromFormField`]: ../rocket/form/trait.FromFormField.html
|
||||
#[proc_macro_derive(FromFormField, attributes(field))]
|
||||
pub fn derive_from_form_field(input: TokenStream) -> TokenStream {
|
||||
emit!(derive::from_form_field::derive_from_form_field(input))
|
||||
|
@ -941,9 +939,9 @@ pub fn derive_responder(input: TokenStream) -> TokenStream {
|
|||
/// the example above, the variant `Kind::String` will render with a value of
|
||||
/// `str`.
|
||||
///
|
||||
/// [`UriDisplay<Query>`]: ../rocket/http/uri/trait.UriDisplay.html
|
||||
/// [`Formatter::write_named_value()`]: ../rocket/http/uri/struct.Formatter.html#method.write_named_value
|
||||
/// [`Formatter::write_value()`]: ../rocket/http/uri/struct.Formatter.html#method.write_value
|
||||
/// [`UriDisplay<Query>`]: ../rocket/http/uri/fmt/trait.UriDisplay.html
|
||||
/// [`Formatter::write_named_value()`]: ../rocket/http/uri/fmt/struct.Formatter.html#method.write_named_value
|
||||
/// [`Formatter::write_value()`]: ../rocket/http/uri/fmt/struct.Formatter.html#method.write_value
|
||||
#[proc_macro_derive(UriDisplayQuery, attributes(field))]
|
||||
pub fn derive_uri_display_query(input: TokenStream) -> TokenStream {
|
||||
emit!(derive::uri_display::derive_uri_display_query(input))
|
||||
|
@ -968,8 +966,8 @@ pub fn derive_uri_display_query(input: TokenStream) -> TokenStream {
|
|||
/// The derive generates an implementation of the [`UriDisplay<Path>`] trait.
|
||||
/// The implementation calls [`Formatter::write_value()`] for the field.
|
||||
///
|
||||
/// [`UriDisplay<Path>`]: ../rocket/http/uri/trait.UriDisplay.html
|
||||
/// [`Formatter::write_value()`]: ../rocket/http/uri/struct.Formatter.html#method.write_value
|
||||
/// [`UriDisplay<Path>`]: ../rocket/http/uri/fmt/trait.UriDisplay.html
|
||||
/// [`Formatter::write_value()`]: ../rocket/http/uri/fmt/struct.Formatter.html#method.write_value
|
||||
#[proc_macro_derive(UriDisplayPath)]
|
||||
pub fn derive_uri_display_path(input: TokenStream) -> TokenStream {
|
||||
emit!(derive::uri_display::derive_uri_display_path(input))
|
||||
|
@ -1376,9 +1374,9 @@ pub fn catchers(input: TokenStream) -> TokenStream {
|
|||
/// [`Authority`]: ../rocket/http/uri/struct.Authority.html
|
||||
/// [`Absolute`]: ../rocket/http/uri/struct.Absolute.html
|
||||
/// [`Reference`]: ../rocket/http/uri/struct.Reference.html
|
||||
/// [`FromUriParam`]: ../rocket/http/uri/trait.FromUriParam.html
|
||||
/// [`UriDisplay`]: ../rocket/http/uri/trait.UriDisplay.html
|
||||
/// [`Ignorable`]: ../rocket/http/uri/trait.Ignorable.html
|
||||
/// [`FromUriParam`]: ../rocket/http/uri/fmt/trait.FromUriParam.html
|
||||
/// [`UriDisplay`]: ../rocket/http/uri/fmt/trait.UriDisplay.html
|
||||
/// [`Ignorable`]: ../rocket/http/uri/fmt/trait.Ignorable.html
|
||||
#[proc_macro]
|
||||
pub fn uri(input: TokenStream) -> TokenStream {
|
||||
emit!(bang::uri_macro(input))
|
||||
|
|
|
@ -22,9 +22,8 @@ use crate::uri::fmt::{self, Part};
|
|||
/// * `impl<'x, P: Part> FromUriParam<P, &'x T> for T`
|
||||
/// * `impl<'x, P: Part> FromUriParam<P, &'x mut T> for T`
|
||||
///
|
||||
/// See [`impl_from_uri_param_identity`] for usage details.
|
||||
///
|
||||
/// [`impl_from_uri_param_identity`]: ../macro.impl_from_uri_param_identity.html
|
||||
/// See [`impl_from_uri_param_identity!`](crate::impl_from_uri_param_identity!)
|
||||
/// for usage details.
|
||||
///
|
||||
/// # Code Generation
|
||||
///
|
||||
|
|
|
@ -203,8 +203,8 @@ use crate::uri::fmt::{Part, Path, Query, Formatter};
|
|||
/// details.
|
||||
///
|
||||
/// [`Ignorable`]: crate::uri::fmt::Ignorable
|
||||
/// [`UriDisplay<Path>`]: ../../derive.UriDisplayPath.html
|
||||
/// [`UriDisplay<Query>`]: ../../derive.UriDisplayQuery.html
|
||||
/// [`UriDisplay<Path>`]: ../../../derive.UriDisplayPath.html
|
||||
/// [`UriDisplay<Query>`]: ../../../derive.UriDisplayQuery.html
|
||||
///
|
||||
/// # Implementing
|
||||
///
|
||||
|
|
|
@ -400,7 +400,7 @@ impl<'a> Origin<'a> {
|
|||
|
||||
/// Returns `true` if `self` is normalized. Otherwise, returns `false`.
|
||||
///
|
||||
/// See [Normalization](#normalization) for more information on what it
|
||||
/// See [Normalization](Self#normalization) for more information on what it
|
||||
/// means for an origin URI to be normalized. Note that `uri!()` always
|
||||
/// normalizes static input.
|
||||
///
|
||||
|
|
|
@ -55,7 +55,7 @@ use crate::response::stream::ReaderStream;
|
|||
pub struct ByteStream<S>(pub S);
|
||||
|
||||
impl<S> From<S> for ByteStream<S> {
|
||||
/// Creates a `ByteStream` from any [`S: Stream`](Stream).
|
||||
/// Creates a `ByteStream` from any `S: Stream`.
|
||||
fn from(stream: S) -> Self {
|
||||
ByteStream(stream)
|
||||
}
|
||||
|
|
|
@ -55,7 +55,7 @@ use crate::http::ContentType;
|
|||
/// appears only in the raw server-sent event data stream and is inaccessible by
|
||||
/// most clients. This includes JavaScript's `EventSource`. As such, they serve
|
||||
/// little utility beyond debugging a raw data stream and keeping a connection
|
||||
/// alive. See [hearbeat](struct@EventStream#hearbeat) for information on
|
||||
/// alive. See [hearbeat](struct@EventStream#heartbeat) for information on
|
||||
/// Rocket's `EventStream` keep-alive.
|
||||
///
|
||||
/// # Fields
|
||||
|
|
|
@ -56,7 +56,7 @@ use crate::response::stream::ReaderStream;
|
|||
pub struct TextStream<S>(pub S);
|
||||
|
||||
impl<S> From<S> for TextStream<S> {
|
||||
/// Creates a `TextStream` from any [`S: Stream`](Stream).
|
||||
/// Creates a `TextStream` from any `S: Stream`.
|
||||
fn from(stream: S) -> Self {
|
||||
TextStream(stream)
|
||||
}
|
||||
|
|
|
@ -780,8 +780,8 @@ pub enum Feature {
|
|||
Usb,
|
||||
/// The "web-share" feature.
|
||||
WebShare,
|
||||
/// The "xr-spatial-tracking<sup>[2](#fn2)</sup>" feature.
|
||||
XrSpatialtracking,
|
||||
/// The "xr-spatial-tracking" feature.
|
||||
XrSpatialTracking,
|
||||
|
||||
// Proposed.
|
||||
|
||||
|
@ -856,7 +856,7 @@ impl Feature {
|
|||
SyncXhr => "sync-xhr",
|
||||
Usb => "usb",
|
||||
WebShare => "web-share",
|
||||
XrSpatialtracking => "xr-spatial-tracking<sup>[2](#fn2)</sup>",
|
||||
XrSpatialTracking => "xr-spatial-tracking",
|
||||
|
||||
ClipboardRead => "clipboard-read",
|
||||
ClipboardWrite => "clipboard-write",
|
||||
|
|
|
@ -699,7 +699,7 @@ async fn upload(mut file: TempFile<'_>) -> std::io::Result<()> {
|
|||
}
|
||||
```
|
||||
|
||||
[`TempFile`]: @api/rocket/fs/struct.TempFile.html
|
||||
[`TempFile`]: @api/rocket/fs/enum.TempFile.html
|
||||
|
||||
### Streaming
|
||||
|
||||
|
|
|
@ -300,11 +300,10 @@ async fn files(file: PathBuf) -> Result<NamedFile, NotFound<String>> {
|
|||
Some of Rocket's best features are implemented through responders. Among these
|
||||
are:
|
||||
|
||||
* [`Content`] - Used to override the Content-Type of a response.
|
||||
* [`NamedFile`] - Streams a file to the client; automatically sets the
|
||||
Content-Type based on the file's extension.
|
||||
* [`Redirect`] - Redirects the client to a different URI.
|
||||
* [`Stream`] - Streams a response to a client from an arbitrary `Read`er type.
|
||||
* [`content`] - Contains types that override the Content-Type a response.
|
||||
* [`status`] - Contains types that override the status code of a response.
|
||||
* [`Flash`] - Sets a "flash" cookie that is removed when accessed.
|
||||
* [`Json`] - Automatically serializes values into JSON.
|
||||
|
@ -312,20 +311,22 @@ are:
|
|||
* [`Template`] - Renders a dynamic template using handlebars or Tera.
|
||||
|
||||
[`status`]: @api/rocket/response/status/
|
||||
[`content`]: @api/rocket/response/content/
|
||||
[`response`]: @api/rocket/response/
|
||||
[`NamedFile`]: @api/rocket/response/struct.NamedFile.html
|
||||
[`Content`]: @api/rocket/response/struct.Content.html
|
||||
[`NamedFile`]: @api/rocket/fs/struct.NamedFile.html
|
||||
[`Redirect`]: @api/rocket/response/struct.Redirect.html
|
||||
[`Stream`]: @api/rocket/response/struct.Stream.html
|
||||
[`Flash`]: @api/rocket/response/struct.Flash.html
|
||||
[`MsgPack`]: @api/rocket/serde/msgpack/struct.MsgPack.html
|
||||
[`Template`]: @api/rocket_dyn_templates/struct.Template.html
|
||||
|
||||
### Async Streams
|
||||
|
||||
The [`stream`] responders allow serving potentially infinite async [`Stream`]s.
|
||||
The [`stream`] responders allow serving potentially infinite [async `Stream`]s.
|
||||
A stream can be created from any async `Stream` or `AsyncRead` type, or via
|
||||
generator syntax using the [`stream!`] macro and its typed equivalents.
|
||||
generator syntax using the [`stream!`] macro and its typed equivalents. Streams
|
||||
are the building blocks for unidirectional real-time communication. For
|
||||
instance, the [`chat` example] uses an [`EventStream`] to implement a real-time,
|
||||
multi-room chat application using Server-Sent Events (SSE).
|
||||
|
||||
The simplest version creates a [`ReaderStream`] from a single `AsyncRead` type.
|
||||
For example, to stream from a TCP connection, we might write:
|
||||
|
@ -372,9 +373,11 @@ how to detect and handle graceful shutdown requests.
|
|||
|
||||
[`stream`]: @api/rocket/response/stream/index.html
|
||||
[`stream!`]: @api/rocket/response/stream/macro.stream.html
|
||||
[`Stream`]: https://docs.rs/futures/0.3/futures/stream/trait.Stream.html
|
||||
[async `Stream`]: https://docs.rs/futures/0.3/futures/stream/trait.Stream.html
|
||||
[`ReaderStream`]: @api/rocket/response/stream/struct.ReaderStream.html
|
||||
[`TextStream`]: @api/rocket/response/stream/struct.TextStream.html
|
||||
[`EventStream`]: @api/rocket/response/stream/struct.EventStream.html
|
||||
[`chat` example]: @example/chat
|
||||
|
||||
### JSON
|
||||
|
||||
|
@ -482,7 +485,7 @@ including how to customize a template engine to add custom helpers and filters.
|
|||
The [templating example](@example/templating) uses both Tera and Handlebars
|
||||
templating to implement the same application.
|
||||
|
||||
[configurable]: ../configuration/#extras
|
||||
[configurable]: ../configuration
|
||||
|
||||
## Typed URIs
|
||||
|
||||
|
@ -713,14 +716,14 @@ uri!(person(id = 100, details = "a/b/c"));
|
|||
See the [`FromUriParam`] documentation for further details.
|
||||
|
||||
[`Origin`]: @api/rocket/http/uri/struct.Origin.html
|
||||
[`Part`]: @api/rocket/http/uri/trait.Part.html
|
||||
[`Part`]: @api/rocket/http/uri/fmt/trait.Part.html
|
||||
[`Uri`]: @api/rocket/http/uri/enum.Uri.html
|
||||
[`Redirect::to()`]: @api/rocket/response/struct.Redirect.html#method.to
|
||||
[`uri!`]: @api/rocket/macro.uri.html
|
||||
[`UriDisplay`]: @api/rocket/http/uri/trait.UriDisplay.html
|
||||
[`FromUriParam`]: @api/rocket/http/uri/trait.FromUriParam.html
|
||||
[`Path`]: @api/rocket/http/uri/enum.Path.html
|
||||
[`Query`]: @api/rocket/http/uri/enum.Query.html
|
||||
[`Ignorable`]: @api/rocket/http/uri/trait.Ignorable.html
|
||||
[`UriDisplay`]: @api/rocket/http/uri/fmt/trait.UriDisplay.html
|
||||
[`FromUriParam`]: @api/rocket/http/uri/fmt/trait.FromUriParam.html
|
||||
[`Path`]: @api/rocket/http/uri/fmt/enum.Path.html
|
||||
[`Query`]: @api/rocket/http/uri/fmt/enum.Query.html
|
||||
[`Ignorable`]: @api/rocket/http/uri/fmt/trait.Ignorable.html
|
||||
[`UriDisplayPath`]: @api/rocket/derive.UriDisplayPath.html
|
||||
[`UriDisplayQuery`]: @api/rocket/derive.UriDisplayQuery.html
|
||||
|
|
|
@ -58,7 +58,7 @@ selected profile doesn't contain a requested values, while values in the
|
|||
[`Config::figment()`]: @api/rocket/struct.Config.html#method.figment
|
||||
[`Toml`]: @figment/providers/struct.Toml.html
|
||||
[`Json`]: @figment/providers/struct.Json.html
|
||||
[`Figment`]: @api/rocket/struct.Figment.html
|
||||
[`Figment`]: @figment/struct.Figment.html
|
||||
[`Deserialize`]: @api/rocket/serde/trait.Deserialize.html
|
||||
[`LogLevel`]: @api/rocket/config/enum.LogLevel.html
|
||||
[`Limits`]: @api/rocket/data/struct.Limits.html
|
||||
|
|
|
@ -150,19 +150,19 @@ color = 'purple'
|
|||
margin = -6
|
||||
|
||||
[[bottom_features]]
|
||||
title = 'Streams'
|
||||
text = "Rocket streams all incoming and outgoing data, so size isn't a concern."
|
||||
title = 'Async Streams'
|
||||
text = "Create and return potentially infinite async streams of data with ease."
|
||||
image = 'streams-icon'
|
||||
url = 'guide/requests/#streaming'
|
||||
url = 'guide/responses/#async-streams'
|
||||
button = 'Learn More'
|
||||
color = 'red'
|
||||
margin = -29
|
||||
|
||||
[[bottom_features]]
|
||||
title = 'Config Environments'
|
||||
text = "Configure your application your way for development, staging, and production."
|
||||
title = 'Config Profiles'
|
||||
text = "Configure your application your way for debug, release, or anything else!"
|
||||
image = 'config-icon'
|
||||
url = 'guide/configuration/#environment'
|
||||
url = 'guide/configuration/#profiles'
|
||||
button = 'Learn More'
|
||||
color = 'yellow'
|
||||
margin = -3
|
||||
|
|
|
@ -46,7 +46,7 @@ state's type in the function signature. It works in two easy steps:
|
|||
value passed into `manage`.
|
||||
|
||||
Rocket takes care of the rest! `State` works through Rocket's [request
|
||||
guards](../../guide/requests/#request-guards). You can call `manage` any number
|
||||
guards](@guide-v0.3/requests/#request-guards). You can call `manage` any number
|
||||
of times, as long as each call corresponds to a value of a different type.
|
||||
|
||||
As a simple example, consider the following "hit counter" example application:
|
||||
|
@ -110,14 +110,14 @@ help: maybe add a call to 'manage' here?
|
|||
| ^^^^^^^^^^^^^^^^
|
||||
```
|
||||
|
||||
You can read more about managed state in the [guide](../../guide/state/), the
|
||||
API docs for [manage](@api/rocket/struct.Rocket.html#method.manage), and the API
|
||||
docs for [State](@api/rocket/struct.State.html).
|
||||
You can read more about managed state in the [guide](@guide-v0.3/state/), the
|
||||
API docs for [manage](@api-v0.3/rocket/struct.Rocket.html#method.manage), and the API
|
||||
docs for [State](@api-v0.3/rocket/struct.State.html).
|
||||
|
||||
### Unmounted Routes Lint
|
||||
|
||||
A common mistake that new Rocketeers make is forgetting to
|
||||
[mount](../../guide/overview/#mounting) declared routes. In Rocket v0.2, Rocket
|
||||
[mount](@guide-v0.3/overview/#mounting) declared routes. In Rocket v0.2, Rocket
|
||||
adds a _lint_ that results in a compile-time warning for unmounted routes. As a
|
||||
simple illustration, consider the canonical "Hello, world!" Rocket application
|
||||
below, and note that we've forgotten to mount the `hello` route:
|
||||
|
@ -156,7 +156,7 @@ help: maybe add a call to 'mount' here?
|
|||
The lint can be disabled selectively per route by adding an
|
||||
`#[allow(unmounted_route)]` annotation to a given route declaration. It can also
|
||||
be disabled globally by adding `#![allow(unmounted_route)]`. You can read more
|
||||
about this lint in the [codegen documentation](@api/rocket_codegen/index.html).
|
||||
about this lint in the [codegen documentation](@api-v0.3/rocket_codegen/index.html).
|
||||
|
||||
### Configuration via Environment Variables
|
||||
|
||||
|
@ -174,7 +174,7 @@ Configuration parameters set via environment variables take precedence over
|
|||
parameters set via the `Rocket.toml` configuration file. Note that _any_
|
||||
parameter can be set via an environment variable, include _extras_. For more
|
||||
about configuration in Rocket, see the [configuration section of the
|
||||
guide](../../guide/overview#configuration).
|
||||
guide](@guide-v0.3/overview#configuration).
|
||||
|
||||
### And Plenty More!
|
||||
|
||||
|
@ -391,4 +391,4 @@ contributing!
|
|||
Not already using Rocket? Rocket is extensively documented, making it easy for
|
||||
you to start writing your web applications in Rocket! See the
|
||||
[overview](../../overview) or start writing code immediately by reading through
|
||||
[the guide](../../guide).
|
||||
[the guide](@guide-v0.3).
|
||||
|
|
|
@ -21,7 +21,7 @@ sacrificing flexibility or type safety. All with minimal code.
|
|||
|
||||
Not already using Rocket? Join the thousands of users and dozens of companies
|
||||
happily using Rocket today! Rocket's extensive documentation makes it easy. Get
|
||||
started now by [reading through the guide](../../guide) or learning more from
|
||||
started now by [reading through the guide](@guide-v0.3) or learning more from
|
||||
[the overview](../../overview).
|
||||
|
||||
## What's New?
|
||||
|
@ -61,8 +61,8 @@ limitations and abilities, and includes implementation examples. I encourage you
|
|||
to experiment with fairings and report your experiences. As always, feedback is
|
||||
instrumental in solidifying a robust design.
|
||||
|
||||
[`Fairing`]: @api/rocket/fairing/trait.Fairing.html
|
||||
[fairings guide]: ../../guide/fairings
|
||||
[`Fairing`]: @api-v0.3/rocket/fairing/trait.Fairing.html
|
||||
[fairings guide]: @guide-v0.3/fairings
|
||||
|
||||
### Native TLS Support
|
||||
|
||||
|
@ -88,7 +88,7 @@ For more details on Rocket's TLS support, see the [configuring TLS] section of
|
|||
the guide.
|
||||
|
||||
[`rustls`]: https://github.com/ctz/rustls
|
||||
[configuring TLS]: ../../guide/configuration/#configuring-tls
|
||||
[configuring TLS]: @guide-v0.3/configuration/#configuring-tls
|
||||
|
||||
### Private Cookies
|
||||
|
||||
|
@ -126,11 +126,11 @@ automatically generates a fresh key at launch.
|
|||
For more details on private cookies, see the [private cookies] section of the
|
||||
guide.
|
||||
|
||||
[`Cookies`]: @api/rocket/http/enum.Cookies.html
|
||||
[`get_private`]: @api/rocket/http/enum.Cookies.html#method.get_private
|
||||
[`add_private`]: @api/rocket/http/enum.Cookies.html#method.add_private
|
||||
[`remove_private`]: @api/rocket/http/enum.Cookies.html#method.remove_private
|
||||
[private cookies]: ../../guide/requests/#private-cookies
|
||||
[`Cookies`]: @api-v0.3/rocket/http/enum.Cookies.html
|
||||
[`get_private`]: @api-v0.3/rocket/http/enum.Cookies.html#method.get_private
|
||||
[`add_private`]: @api-v0.3/rocket/http/enum.Cookies.html#method.add_private
|
||||
[`remove_private`]: @api-v0.3/rocket/http/enum.Cookies.html#method.remove_private
|
||||
[private cookies]: @guide-v0.3/requests/#private-cookies
|
||||
|
||||
### Form Field Naming
|
||||
|
||||
|
@ -163,9 +163,9 @@ struct External {
|
|||
|
||||
Rocket will automatically match the form field named "type" to the structure
|
||||
field named `api_type`. For more details on form field naming, see the [field
|
||||
renaming](../../guide/requests/#field-renaming) section of the guide.
|
||||
renaming](@guide-v0.3/requests/#field-renaming) section of the guide.
|
||||
|
||||
[`FromForm`]: @api/rocket/request/trait.FromForm.html
|
||||
[`FromForm`]: @api-v0.3/rocket/request/trait.FromForm.html
|
||||
|
||||
### And Plenty More!
|
||||
|
||||
|
@ -189,7 +189,7 @@ following new features:
|
|||
* [`Response::content_type()`] was added to retrieve the Content-Type header
|
||||
of a response.
|
||||
* Data limits on incoming data are [now
|
||||
configurable](../../guide/configuration/#data-limits).
|
||||
configurable](@guide-v0.3/configuration/#data-limits).
|
||||
* [`Request::limits()`] was added to retrieve incoming data limits.
|
||||
* Responders may dynamically adjust their response based on the incoming
|
||||
request.
|
||||
|
@ -211,28 +211,28 @@ following new features:
|
|||
* The [`NotFound`] responder was added for simple **404** response
|
||||
construction.
|
||||
|
||||
[`MsgPack`]: @api/rocket_contrib/msgpack/struct.MsgPack.html
|
||||
[`Rocket::launch()`]: @api/rocket/struct.Rocket.html#method.launch
|
||||
[`LaunchError`]: @api/rocket/error/struct.LaunchError.html
|
||||
[Default rankings]: @api/rocket/struct.Route.html
|
||||
[`&Route`]: @api/rocket/struct.Route.html
|
||||
[`Route`]: @api/rocket/struct.Route.html
|
||||
[`Accept`]: @api/rocket/http/struct.Accept.html
|
||||
[`Request::accept()`]: @api/rocket/struct.Request.html#method.accept
|
||||
[`contrib`]: @api/rocket_contrib/
|
||||
[`Rocket::routes()`]: @api/rocket/struct.Rocket.html#method.routes
|
||||
[`Response::body_string()`]: @api/rocket/struct.Response.html#method.body_string
|
||||
[`Response::body_bytes()`]: @api/rocket/struct.Response.html#method.body_bytes
|
||||
[`Response::content_type()`]: @api/rocket/struct.Response.html#method.content_type
|
||||
[`Request::guard()`]: @api/rocket/struct.Request.html#method.guard
|
||||
[`Request::limits()`]: @api/rocket/struct.Request.html#method.limits
|
||||
[`Request::route()`]: @api/rocket/struct.Request.html#method.route
|
||||
[`Config`]: @api/rocket/struct.Config.html
|
||||
[`Cookies`]: @api/rocket/http/enum.Cookies.html
|
||||
[`Config::get_datetime()`]: @api/rocket/struct.Config.html#method.get_datetime
|
||||
[`LenientForm`]: @api/rocket/request/struct.LenientForm.html
|
||||
[configuration parameters]: @api/rocket/config/index.html#environment-variables
|
||||
[`NotFound`]: @api/rocket/response/status/struct.NotFound.html
|
||||
[`MsgPack`]: @api-v0.3/rocket_contrib/msgpack/struct.MsgPack.html
|
||||
[`Rocket::launch()`]: @api-v0.3/rocket/struct.Rocket.html#method.launch
|
||||
[`LaunchError`]: @api-v0.3/rocket/error/struct.LaunchError.html
|
||||
[Default rankings]: @api-v0.3/rocket/struct.Route.html
|
||||
[`&Route`]: @api-v0.3/rocket/struct.Route.html
|
||||
[`Route`]: @api-v0.3/rocket/struct.Route.html
|
||||
[`Accept`]: @api-v0.3/rocket/http/struct.Accept.html
|
||||
[`Request::accept()`]: @api-v0.3/rocket/struct.Request.html#method.accept
|
||||
[`contrib`]: @api-v0.3/rocket_contrib/
|
||||
[`Rocket::routes()`]: @api-v0.3/rocket/struct.Rocket.html#method.routes
|
||||
[`Response::body_string()`]: @api-v0.3/rocket/struct.Response.html#method.body_string
|
||||
[`Response::body_bytes()`]: @api-v0.3/rocket/struct.Response.html#method.body_bytes
|
||||
[`Response::content_type()`]: @api-v0.3/rocket/struct.Response.html#method.content_type
|
||||
[`Request::guard()`]: @api-v0.3/rocket/struct.Request.html#method.guard
|
||||
[`Request::limits()`]: @api-v0.3/rocket/struct.Request.html#method.limits
|
||||
[`Request::route()`]: @api-v0.3/rocket/struct.Request.html#method.route
|
||||
[`Config`]: @api-v0.3/rocket/struct.Config.html
|
||||
[`Cookies`]: @api-v0.3/rocket/http/enum.Cookies.html
|
||||
[`Config::get_datetime()`]: @api-v0.3/rocket/struct.Config.html#method.get_datetime
|
||||
[`LenientForm`]: @api-v0.3/rocket/request/struct.LenientForm.html
|
||||
[configuration parameters]: @api-v0.3/rocket/config/index.html#environment-variables
|
||||
[`NotFound`]: @api-v0.3/rocket/response/status/struct.NotFound.html
|
||||
|
||||
## Breaking Changes
|
||||
|
||||
|
@ -267,9 +267,9 @@ In addition to new features, Rocket saw the following improvements:
|
|||
* The format of a request is always logged when available.
|
||||
|
||||
[`yansi`]: https://crates.io/crates/yansi
|
||||
[`Request`]: @api/rocket/struct.Request.html
|
||||
[`State`]: @api/rocket/struct.State.html
|
||||
[`Config`]: @api/rocket/struct.Config.html
|
||||
[`Request`]: @api-v0.3/rocket/struct.Request.html
|
||||
[`State`]: @api-v0.3/rocket/struct.State.html
|
||||
[`Config`]: @api-v0.3/rocket/struct.Config.html
|
||||
|
||||
## What's Next?
|
||||
|
||||
|
@ -300,7 +300,7 @@ and usability. The following major features are planned:
|
|||
type-checks. In the next release, a `url!` macro will be available to
|
||||
automatically generate URLs for routes in a type-safe manner.
|
||||
|
||||
[much wordier than necessary]: ../../guide/state/#databases
|
||||
[much wordier than necessary]: @guide-v0.3/state/#databases
|
||||
|
||||
## Contributors to v0.3
|
||||
|
||||
|
|
|
@ -26,7 +26,7 @@ Friday, November 9th for the general release!
|
|||
|
||||
[GitHub issue tracker]: https://github.com/SergioBenitez/Rocket/issues
|
||||
[API docs]: https://api.rocket.rs/v0.4/rocket/
|
||||
[guide]: ../../guide
|
||||
[guide]: @guide-v0.4
|
||||
[CHANGELOG]: https://github.com/SergioBenitez/Rocket/tree/v0.4/CHANGELOG.md#version-040-rc-oct-31-2018
|
||||
|
||||
## About Rocket
|
||||
|
@ -37,5 +37,5 @@ sacrificing flexibility or type safety. All with minimal code.
|
|||
|
||||
Not already using Rocket? Join the tens of thousands of users and hundreds of
|
||||
companies happily using Rocket today! Rocket's extensive documentation makes it
|
||||
easy. Get started now by [reading through the guide](../../guide) or learning
|
||||
easy. Get started now by [reading through the guide](@guide-v0.4) or learning
|
||||
more from [the overview](../../overview).
|
||||
|
|
|
@ -32,8 +32,8 @@ We're excited for your feedback, and we look forward to seeing you again on
|
|||
Wednesday, December 5th for the general release!
|
||||
|
||||
[GitHub issue tracker]: https://github.com/SergioBenitez/Rocket/issues
|
||||
[API docs]: https://api.rocket.rs/v0.4/rocket/
|
||||
[guide]: ../../guide
|
||||
[API docs]: @api-v0.4
|
||||
[guide]: @guide-v0.4
|
||||
[CHANGELOG]: https://github.com/SergioBenitez/Rocket/tree/v0.4/CHANGELOG.md#version-040-rc2-nov-30-2018
|
||||
|
||||
## About Rocket
|
||||
|
@ -44,5 +44,5 @@ sacrificing flexibility or type safety. All with minimal code.
|
|||
|
||||
Not already using Rocket? Join the tens of thousands of users and hundreds of
|
||||
companies happily using Rocket today! Rocket's extensive documentation makes it
|
||||
easy. Get started now by [reading through the guide](../../guide) or learning
|
||||
easy. Get started now by [reading through the guide](@guide-v0.4) or learning
|
||||
more from [the overview](../../overview).
|
||||
|
|
|
@ -23,7 +23,7 @@ without sacrificing flexibility or type safety.
|
|||
|
||||
Not already using Rocket? Join the tens of thousands of users and hundreds of
|
||||
companies happily using Rocket today! Rocket's extensive documentation makes it
|
||||
easy. Get started now by [reading through the guide](../../guide) or learning
|
||||
easy. Get started now by [reading through the guide](@guide-v0.4) or learning
|
||||
more from [the overview](../../overview).
|
||||
|
||||
## What's New?
|
||||
|
@ -151,8 +151,8 @@ We recommend that `uri!` is exclusively used when constructing route URIs. For
|
|||
more information on typed URIs, see the new [Typed URIs] guide section and the
|
||||
[`uri!`] macro documentation.
|
||||
|
||||
[`uri!`]: @api/rocket_codegen/macro.uri.html
|
||||
[Typed URIs]: ../../guide/responses/#typed-uris
|
||||
[`uri!`]: @api-v0.4/rocket_codegen/macro.uri.html
|
||||
[Typed URIs]: @guide-v0.4/responses/#typed-uris
|
||||
|
||||
### Database Support
|
||||
|
||||
|
@ -197,8 +197,8 @@ fn get_logs(conn: LogsDbConn, id: usize) -> Result<Logs> {
|
|||
For more information on Rocket's database support, see the new [Database] guide
|
||||
section and the [`rocket_contrib::databases`] module documentation.
|
||||
|
||||
[Database]: ../../guide/state/#databases
|
||||
[`rocket_contrib::databases`]: @api/rocket_contrib/databases/index.html
|
||||
[Database]: @guide-v0.4/state/#databases
|
||||
[`rocket_contrib::databases`]: @api-v0.4/rocket_contrib/databases/index.html
|
||||
|
||||
### Revamped Queries
|
||||
|
||||
|
@ -241,10 +241,10 @@ and [`FromFormValue`] can be derived.
|
|||
For more details on handling query strings, see the new [Query Strings] guide
|
||||
section and the updated [`route` attribute] documentation.
|
||||
|
||||
[`FromFormValue`]: @api/rocket/request/trait.FromFormValue.html
|
||||
[`FromQuery`]: @api/rocket/request/trait.FromQuery.html
|
||||
[`route` attribute]: @api/rocket_codegen/attr.get.html
|
||||
[Query Strings]: ../../guide/requests/#query-strings
|
||||
[`FromFormValue`]: @api-v0.4/rocket/request/trait.FromFormValue.html
|
||||
[`FromQuery`]: @api-v0.4/rocket/request/trait.FromQuery.html
|
||||
[`route` attribute]: @api-v0.4/rocket_codegen/attr.get.html
|
||||
[Query Strings]: @guide-v0.4/requests/#query-strings
|
||||
[#608]: https://github.com/SergioBenitez/Rocket/issues/608
|
||||
|
||||
### Stateful Handlers
|
||||
|
@ -269,8 +269,8 @@ fn main() {
|
|||
We encourage users to explore the new `Handler` API and contribute libraries
|
||||
with pluggable handlers! For more details, see the [`Handler`] documentation.
|
||||
|
||||
[`Handler`]: @api/rocket/trait.Handler.html
|
||||
[`StaticFiles`]: @api/rocket_contrib/serve/struct.StaticFiles.html
|
||||
[`Handler`]: @api-v0.4/rocket/trait.Handler.html
|
||||
[`StaticFiles`]: @api-v0.4/rocket_contrib/serve/struct.StaticFiles.html
|
||||
|
||||
### Responder Derive
|
||||
|
||||
|
@ -319,9 +319,9 @@ headers to the response (here, `ContentType`).
|
|||
For more on using the `Responder` derive, see the new [Custom Responders] guide
|
||||
section and the [`Responder` derive] documentation.
|
||||
|
||||
[Custom Responders]: ../../guide/responses/#custom-responders
|
||||
[`Responder` derive]: @api/rocket_codegen/derive.Responder.html
|
||||
[`Responder`]: @api/rocket/response/trait.Responder.html
|
||||
[Custom Responders]: @guide-v0.4/responses/#custom-responders
|
||||
[`Responder` derive]: @api-v0.4/rocket_codegen/derive.Responder.html
|
||||
[`Responder`]: @api-v0.4/rocket/response/trait.Responder.html
|
||||
|
||||
### Live Template Reloading
|
||||
|
||||
|
@ -465,17 +465,17 @@ In addition to new features, Rocket saw the following improvements:
|
|||
* The `cookie` dependency was updated to `0.11`.
|
||||
|
||||
[Tera templates example]: @github/examples/tera_templates
|
||||
[`FormItems`]: @api/rocket/request/enum.FormItems.html
|
||||
[`Config::active()`]: @api/rocket/config/struct.Config.html#method.active
|
||||
[`Flash`]: @api/rocket/response/struct.Flash.html
|
||||
[`AdHoc::on_attach()`]: @api/rocket/fairing/struct.AdHoc.html#method.on_attach
|
||||
[`AdHoc::on_launch()`]: @api/rocket/fairing/struct.AdHoc.html#method.on_launch
|
||||
[`Config::root_relative()`]: @api/rocket/struct.Config.html#method.root_relative
|
||||
[`Config::tls_enabled()`]: @api/rocket/struct.Config.html#method.tls_enabled
|
||||
[`rocket_codegen`]: @api/rocket_codegen/index.html
|
||||
[`FromParam`]: @api/rocket/request/trait.FromParam.html
|
||||
[`FromFormValue`]: @api/rocket/request/trait.FromFormValue.html
|
||||
[`Data`]: @api/rocket/struct.Data.html
|
||||
[`FormItems`]: @api-v0.4/rocket/request/enum.FormItems.html
|
||||
[`Config::active()`]: @api-v0.4/rocket/config/struct.Config.html#method.active
|
||||
[`Flash`]: @api-v0.4/rocket/response/struct.Flash.html
|
||||
[`AdHoc::on_attach()`]: @api-v0.4/rocket/fairing/struct.AdHoc.html#method.on_attach
|
||||
[`AdHoc::on_launch()`]: @api-v0.4/rocket/fairing/struct.AdHoc.html#method.on_launch
|
||||
[`Config::root_relative()`]: @api-v0.4/rocket/struct.Config.html#method.root_relative
|
||||
[`Config::tls_enabled()`]: @api-v0.4/rocket/struct.Config.html#method.tls_enabled
|
||||
[`rocket_codegen`]: @api-v0.4/rocket_codegen/index.html
|
||||
[`FromParam`]: @api-v0.4/rocket/request/trait.FromParam.html
|
||||
[`FromFormValue`]: @api-v0.4/rocket/request/trait.FromFormValue.html
|
||||
[`Data`]: @api-v0.4/rocket/struct.Data.html
|
||||
[`Form`]: https://api.rocket.rs/v0.4/rocket/request/struct.Form.html
|
||||
[`LenientForm`]: https://api.rocket.rs/v0.4/rocket/request/struct.LenientForm.html
|
||||
|
||||
|
|
|
@ -68,7 +68,7 @@ fn login(user_form: Form<UserLogin>) -> String {
|
|||
```
|
||||
|
||||
The `login` route above says that it expects `data` of type `Form<UserLogin>` in
|
||||
the `user_form` parameter. The [Form](@api/rocket/request/struct.Form.html) type
|
||||
the `user_form` parameter. The [Form](@api/rocket/form/struct.Form.html) type
|
||||
is a built-in Rocket type that knows how to parse web forms into structures.
|
||||
Rocket will automatically attempt to parse the request body into the `Form` and
|
||||
call the `login` handler if parsing succeeds. Other built-in `FromData` types
|
||||
|
|
Loading…
Reference in New Issue