Rocket/site
Sergio Benitez 78e2f8a3c9 Revamp codegen, fixing inconscpicuous bugs.
This commit completely revamps the way that codegen handles route URI
"parameters". The changes are largely internal. In summary, codegen code
is better organized, better written, and less subject to error.

There are three breaking changes:
  * `path` is now `uri` in `route` attribute: `#[route(GET, path = "..")]`
    becomes `#[route(GET, uri = "..")]`.
  * the order of execution for path and query guards relative to
    each-other is now unspecified
  * URI normalization now normalizes the query part as well.

Several error messages were improved. A couple of bugs were fixed:
  * Prior to this commit, Rocket would optimistically try to parse every
    segment of a URI as an ident, in case one was needed in the future.
    A bug in rustc results in codegen "panicking" if the segment
    couldn't _lex_ as an ident. This panic didn't manifest until far
    after expansion, unfortunately. This wasn't a problem before as we
    only allowed ident-like segments (ASCII), but now that we allow any
    UTF-8, the bug surfaced. This was fixed by never attempting to parse
    non-idents as idents.
  * Prior to this commit, it was impossible to generate typed URIs for
    paths that ignored path parameters via the recently added syntax
    `<_>`: the macro would panic. This was fixed by, well, handling
    these ignored parameters.

Some minor additions:
  * Added `RawStr::find()`, expanding its `Pattern`-based API.
  * Added an internal mechanism to dynamically determine if a `UriPart`
    is `Path` or `Query`.
2021-03-04 02:01:25 -08:00
..
guide Revamp codegen, fixing inconscpicuous bugs. 2021-03-04 02:01:25 -08:00
news Fix various typos throughout the codebase. 2020-07-22 12:56:01 -07:00
tests Revamp codegen, fixing inconscpicuous bugs. 2021-03-04 02:01:25 -08:00
LICENSE Add site contents, including the guide. Add license information. 2017-04-16 21:11:41 -07:00
README.md Point all docs and doc links to 'master' branch. 2020-10-21 04:54:24 -07:00
index.toml Point all docs and doc links to 'master' branch. 2020-10-21 04:54:24 -07:00
overview.toml Add '#[rocket::launch]' attribute. 2020-07-11 09:24:29 -07:00

README.md

Rocket Website Source

This directory contains the source files for the content on Rocket's website.

Contents

This directory contains the following:

  • index.toml - Source data for the index.
  • overview.toml - Source data for the overview page (overview/).
  • news/index.toml - Source data for the news page (news/).
  • news/*.md - News articles linked to from news/index.toml.
  • guide/*.md - Guide pages linked to from guide.md.

Cross-linking guide pages is accomplished via relative links. Outside of the index, this is: ../{page}#anchor. For instance, to link to the Quickstart > Running Examples page, use ../quickstart#running-examples.

Aliases

Aliases are shorthand URLs that start with @ (e.g, @api). They are used throughout the guide to simplify versioning URLs to Rocket's source code and the Rocket API. They are replaced at build time with a URL prefix. At present, the following aliases are available, where ${version} is Rocket's version string at the time of compilation:

For example, to link to Rocket::launch(), you might write:

Launch an instance of your application using the [`launch()`] method.

[`launch()`]: @api/rocket/struct.Rocket.html#method.launch

License

The Rocket website source is licensed under the GNU General Public License v3.0.