4f3511786c
The core 'Rocket' type is parameterized: 'Rocket<P: Phase>', where 'Phase' is a newly introduced, sealed marker trait. The trait is implemented by three new marker types representing the three launch phases: 'Build', 'Ignite', and 'Orbit'. Progression through these three phases, in order, is enforced, as are the invariants guaranteed by each phase. In particular, an instance of 'Rocket' is guaranteed to be in its final configuration after the 'Build' phase and represent a running local or public server in the 'Orbit' phase. The 'Ignite' phase serves as an intermediate, enabling inspection of a finalized but stationary instance. Transition between phases validates the invariants required by the transition. All APIs have been adjusted appropriately, requiring either an instance of 'Rocket' in a particular phase ('Rocket<Build>', 'Rocket<Ignite>', or 'Rocket<Orbit>') or operating generically on a 'Rocket<P>'. Documentation is also updated and substantially improved to mention required and guaranteed invariants. Additionally, this commit makes the following relevant changes: * 'Rocket::ignite()' is now a public interface. * 'Rocket::{build,custom}' methods can no longer panic. * 'Launch' fairings are now 'ignite' fairings. * 'Liftoff' fairings are always run, even in local mode. * All 'ignite' fairings run concurrently at ignition. * Launch logging occurs on launch, not any point prior. * Launch log messages have improved formatting. * A new launch error kind, 'Config', was added. * A 'fairing::Result' type alias was introduced. * 'Shutdown::shutdown()' is now 'Shutdown::notify()'. Some internal changes were also introduced: * Fairing 'Info' name for 'Templates' is now 'Templating'. * Shutdown is implemented using 'tokio::sync::Notify'. * 'Client::debug()' is used nearly universally in tests. Resolves #1154. Resolves #1136. |
||
---|---|---|
.. | ||
guide | ||
news | ||
tests | ||
LICENSE | ||
README.md | ||
index.toml | ||
overview.toml |
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 fromnews/index.toml
.guide/*.md
- Guide pages linked to fromguide.md
.
Guide Links
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:
@example
: https://github.com/SergioBenitez/Rocket/tree/${version}/examples@github
: https://github.com/SergioBenitez/Rocket/tree/${version}@api
: https://api.rocket.rs/${version}
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.