Update Rust crate rocket_dyn_templates to 0.2.0 - autoclosed
This MR contains the following updates:
Package | Type | Update | Change |
---|---|---|---|
rocket_dyn_templates (source) | dependencies | minor |
0.1.0 -> 0.2.0
|
Release Notes
rwf2/Rocket (rocket_dyn_templates)
v0.2.0
Detailed release notes for v0.2 can also be found on rocket.rs.
New Features
This release includes the following new features:
- Introduced managed state.
- Added lints that warn on unmanaged state and unmounted routes.
- Added the ability to set configuration parameters via environment variables.
-
Config
structures can be built viaConfigBuilder
, which follows the builder pattern. - Logging can be enabled or disabled on custom configuration via a second
parameter to the
Rocket::custom
method. -
name
andvalue
methods were added toHeader
to retrieve the name and value of a header. - A new configuration parameter,
workers
, can be used to set the number of threads Rocket uses. - The address of the remote connection is available via
Request.remote()
. Request preprocessing overrides remote IP with value from theX-Real-IP
header, if present. - During testing, the remote address can be set via
MockRequest.remote()
. - The
SocketAddr
request guard retrieves the remote address. - A
UUID
type has been added tocontrib
. -
rocket
androcket_codegen
will refuse to build with an incompatible nightly version and emit nice error messages. - Major performance and usability improvements were upstreamed to the
cookie
crate, including the addition of aCookieBuilder
. - When a checkbox isn't present in a form,
bool
types in aFromForm
structure will parse asfalse
. - The
FormItems
iterator can be queried for a complete parse viacompleted
andexhausted
. - Routes for
OPTIONS
requests can be declared via theoptions
decorator. - Strings can be percent-encoded via
URI::percent_encode()
.
Breaking Changes
This release includes several breaking changes. These changes are listed below along with a short note about how to handle the breaking change in existing applications.
-
Rocket::custom
takes two parameters, the first beingConfig
by value.A call in v0.1 of the form
Rocket::custom(&config)
is nowRocket::custom(config, false)
. -
Tera templates are named without their extension.
A templated named
name.html.tera
is now simplyname
. -
JSON
unwrap
method has been renamed tointo_inner
.A call to
.unwrap()
should be changed to.into_inner()
. -
The
map!
macro was removed in favor of thejson!
macro.A call of the form
map!{ "a" => b }
can be written as:json!({ "a": b })
. -
The
hyper::SetCookie
header is no longer exported.Use the
Cookie
type as anInto<Header>
type directly. -
The
Content-Type
forString
is nowtext/plain
.Use
content::HTML<String>
for HTML-basedString
responses. -
Request.content_type()
returns anOption<ContentType>
.Use
.unwrap_or(ContentType::Any)
to get the old behavior. -
The
ContentType
request guard forwards when the request has noContent-Type
header.Use an
Option<ContentType>
and.unwrap_or(ContentType::Any)
for the old behavior. -
A
Rocket
instance must be declared before aMockRequest
.Change the order of the
rocket::ignite()
andMockRequest::new()
calls. -
A route with
format
specified only matches requests with the same format.Previously, a route with a
format
would match requests without a format specified. There is no workaround to this change; simply specify formats when required. -
FormItems
can no longer be constructed directly.Instead of constructing as
FormItems(string)
, construct asFormItems::from(string)
. -
from_from_string(&str)
inFromForm
removed in favor offrom_form_items(&mut FormItems)
.Most implementation should be using
FormItems
internally; simply use the passed inFormItems
. In other cases, the form string can be retrieved via theinner_str
method ofFormItems
. -
Config::{set, default_for}
are deprecated.Use the
set_{param}
methods instead ofset
, andnew
orbuild
in place ofdefault_for
. -
Route paths must be absolute.
Prepend a
/
to convert a relative path into an absolute one. -
Route paths cannot contain empty segments.
Remove any empty segments, including trailing ones, from a route path.
Bug Fixes
A couple of bugs were fixed in this release:
- Handlebars partials were not properly registered (#122).
-
Rocket::custom
did not set the custom configuration as theactive
configuration. - Route path segments containing more than one dynamic parameter were allowed.
General Improvements
In addition to new features, Rocket saw the following smaller improvements:
- Rocket no longer overwrites a catcher's response status.
- The
port
Config
type is now a properu16
. - Clippy issues injected by codegen are resolved.
- Handlebars was updated to
0.25
. - The
PartialEq
implementation ofConfig
doesn't consider the path or secret key. - Hyper dependency updated to
0.10
. - The
Error
type forJSON as FromData
has been exposed asSerdeError
. - SVG was added as a known Content-Type.
- Serde was updated to
0.9
. - Form parse failure now results in a 422 error code.
- Tera has been updated to
0.7
. -
pub(crate)
is used throughout to enforce visibility rules. - Query parameters in routes (
/path?<param>
) are now logged. - Routes with and without query parameters no longer collide.
Infrastructure
- Testing was parallelized, resulting in 3x faster Travis builds.
Configuration
-
If you want to rebase/retry this MR, check this box
This MR has been generated by Renovate Bot.