Commit Graph

256 Commits

Author SHA1 Message Date
Alex Macleod
ca4d1572d4 Hide emoji on Windows.
Closes #1122.
2020-05-17 15:30:48 -07:00
Sergio Benitez
a8b029e423 Properly delimit length and name in flash cookies.
Fixes #1263.
2020-05-16 17:55:54 -07:00
Thiago Veronezi
94a222f6fe Fix typo in 'State' documentation: missing backtick. 2020-04-21 18:47:17 -07:00
Jeb Rosen
3abafaaedb Update UI tests for latest nightly. 2020-04-21 18:12:08 -07:00
Sergio Benitez
06e146e7d1 Update 'time' to 0.2 in 'contrib'. 2020-03-25 14:39:55 -07:00
Sergio Benitez
53353df633 Fix more broken links. 2020-03-09 02:03:38 -07:00
Sorin Davidoi
dfc9e9aab0 Improve accessibility of default error HTML. 2020-03-02 16:39:19 -08:00
Sergio Benitez
32e86c3b69 Inline macro docs into core crate. 2020-02-25 16:56:59 -08:00
Sergio Benitez
95c981de79 Test all guide code examples.
Every code example is now fully runnable and testable. As a result, all
examples are now tested and include imports. Relevant imports are shown
by default. Code examples can be expanded to show all imports.

Fixes #432.
2020-02-15 04:02:19 -08:00
Sergio Benitez
ee1a9903b6 Update UI tests for latest nightly. 2020-02-15 03:51:56 -08:00
Sergio Benitez
385b69cf69 Migrate to 'binascii' for base 16, 64 decoding. 2020-02-14 17:14:37 -08:00
Sergio Benitez
9f0e02fe27 Make references to core types absolute in codegen.
Prior to this commit, codegen emitted tokens containing bare types like
'Result' and 'Box' as well as presumed imported variants such as 'None'
and 'Ok'.  However, users are free to shadow these, and if they do, the
generated code will fail to compile, or worse, be incorrect. To avoid
this, this commit makes all references to these core types and imports
absolute.
2020-02-06 21:16:45 -08:00
Sergio Benitez
d0bfd8a3bb Update 'cookie' to 0.13.2. 2020-01-29 14:17:01 -08:00
Sergio Benitez
f35e3c4aca Set cookies even on error responses.
Fixes #1213.
2020-01-23 21:10:04 -08:00
Sergio Benitez
7c1b8dc9ad Update 'cookie' to 0.13, 'rustls' to 0.16. 2020-01-21 16:10:04 -08:00
Jeb Rosen
ff2000293c Update 'compiletest' and fix and re-enable compile UI tests. 2020-01-15 17:09:57 -08:00
A. L
859224a209 Add additional Responder wrappers for some common HTTP status codes:
* 204 NoContent
* 401 Unauthorized
* 403 Forbidden
* 409 Conflict
2020-01-15 11:41:19 -08:00
Paolo Barbolini
cd5f96ae15 Update 'uuid', 'unicode-xid', and 'base64' dependencies. 2019-11-30 09:33:14 -08:00
Michael Howell
121210c55c Add support for base16-encoded (a.k.a. hex-encoded) secret keys. 2019-11-29 12:06:55 -08:00
Jeb Rosen
96235615ce Update compile tests for changes in rust nightly. 2019-11-29 11:18:32 -08:00
Jeb Rosen
343f51d550 Disable UI tests for now. 2019-11-29 11:18:26 -08:00
Jeb Rosen
e7e84a6d41 Fix and update benchmarks. 2019-11-16 13:08:36 -08:00
Matt Brubeck
8bf6aa2068 Update 'smallvec' to '1.0'. 2019-11-16 13:02:50 -08:00
Jacob Pratt
4e6a7ddd5f Remove use of the 'crate_visibility_modifier' feature.
Most items with 'crate' visibility become 'pub(crate)'.
Items are made 'pub' instead when they would remain private.
2019-09-21 09:16:04 -07:00
Jeb Rosen
335d8f7dbb Adjust '#[catch]' codegen output to fix a UI test regression in latest nightly. 2019-09-21 08:33:16 -07:00
Jacob Pratt
bed93133b8 Abide by formatting in 'Debug' implementations. 2019-09-18 19:06:08 -07:00
Jacob Pratt
e3c1a4ad3a Remove use of the 'try_trait' feature.
Add the 'try_outcome' macro to replace uses of '?' on 'Outcome'.
2019-09-18 18:43:16 -07:00
Jacob Pratt
b95b6765e1 Remove use of 'label_break_value' feature. 2019-09-10 17:27:40 -07:00
Sergio Benitez
2537a1164d Remove 'Result' specialization. Add 'Debug' responder.
This removes all uses of specialization in Rocket.
2019-09-09 21:57:33 -07:00
Sergio Benitez
592e441de5 Use proper span in responder codegen output. 2019-09-09 21:57:10 -07:00
Sergio Benitez
3fae9919f7 Deprecate 'Result<T, E>, E: !Responder' responder. 2019-09-09 21:56:55 -07:00
Sergio Benitez
22da02fa64 Remove double semicolons; silence test warnings. 2019-09-09 16:57:03 -07:00
Sergio Benitez
b7e688cefa Remove use of deprecated 'IndexMap::remove()'.
Use 'IndexMap::swap_remove()' in its place.
2019-09-09 16:51:51 -07:00
Sergio Benitez
99a864008c Remove use of specialization in http. 2019-09-09 16:45:03 -07:00
Sergio Benitez
6ed4c098f1 Stop exporting 'mime' and relevant conversions. 2019-09-09 16:42:44 -07:00
Sergio Benitez
c5973f01df Remove use of specialization in 'status::Created'. 2019-09-09 16:37:46 -07:00
Sergio Benitez
0b059e06e5 Update 'devise' to 0.3.
This transitively updates 'syn', 'proc-macro2', and 'quote' to 1.0.
2019-09-05 15:44:25 -07:00
Sergio Benitez
dcea9563fc Update UI tests for latest nightly. 2019-08-26 12:48:32 -07:00
Jacob Pratt
2dd09f90be Remove unused 'doc_cfg' feature. 2019-08-06 14:01:35 -07:00
Jeb Rosen
3e4f8453ce Remove use of the 'decl_macro' feature.
Also removes one internal use in the 'typed-uris' codegen test.
2019-07-19 11:39:56 -07:00
Jeb Rosen
2f458b5217 Remove dependence on 'decl_macro' in codegen.
The generated 'uri' helper macros are now re-exports of 'macro_rules'
macros, made possible by the stable 'uniform_paths' feature.
2019-07-19 11:38:35 -07:00
Jacob Pratt
34a741a26e Remove use of '!' type in favor of 'Infallible'.
This removes the use of and dependence on the 'never_type' feature.
2019-07-09 15:10:51 -07:00
Sergio Benitez
21b10176ee Forward from 'StaticFiles' if a file is not found.
Also adds a 'handler::Outcome::from_or_forward' method for easily
constructing handler outcomes that forward on responder failures.

Fixes #1036.
2019-07-07 23:22:38 -07:00
Dmitry Murzin
c100a92127 Implement 'FromParam' for 'NonZero*' types. 2019-07-06 13:32:08 -07:00
Sergio Benitez
7f2c9f426c Fix tests for Windows. 2019-07-06 00:59:01 -07:00
Jeb Rosen
be784a7845 Migrate codegen to Rust 2018. 2019-06-25 13:45:27 -04:00
Jeb Rosen
34cb1c14b8 Migrate core to Rust 2018. 2019-06-25 13:45:23 -04:00
Jeb Rosen
90e37beb2f Migrate http to Rust 2018. 2019-06-25 13:43:53 -04:00
Thomas Lent
42f8af411e Fix type in 'Data' rustdocs: 'T' -> 'DataGuard'. 2019-06-11 15:04:54 -07:00
Jeb Rosen
2d924f0f51 Allow 'non_snake_case' for generated query params.
Also adds '#[deny(non_snake_case)]' to the complete route generation
test for regressions.

Fixes #1003.
2019-05-29 19:18:46 -07:00
Sergio Benitez
e458df094f Update 'version_check' to 0.9. 2019-05-24 01:48:42 -07:00
jeb
6bf751fb22 Reexport derive macros alongside derived traits. 2019-05-22 22:19:47 -07:00
Brenden Matthews
ba6aa2f05e Bump cookie, rustls, and hyper-sync-rustls dependencies. 2019-05-14 22:25:55 -07:00
Sergio Benitez
1caf87eb21 Move to 0.5.0-dev on master. 2019-05-13 16:18:48 -07:00
Richard Petrie
75d2ea96d9 Replace deprecated 'isatty' with 'atty'. 2019-05-10 18:21:58 -07:00
Sergio Benitez
3e7a20ae57 Clarify defaults in 'Config' documentation. 2019-05-10 16:39:41 -07:00
Sergio Benitez
fdd76ecf7e Clean up 'AdHoc' fairing implementation. 2019-05-09 09:04:31 -07:00
Sergio Benitez
7c2dda2647 Clean up 'Server' header commentary. 2019-05-08 20:20:26 -07:00
Sergio Benitez
9f75e0f443 Clean up 'conditionally-set-server-header' test. 2019-05-08 20:18:10 -07:00
lu4nm3
0a978fdb5d Set default 'Server' header only if it isn't set.
Closes #996.
2019-05-08 20:18:10 -07:00
Jeb Rosen
3c51a2f401 Update compiler tests for 2019-04-19 nightly. 2019-04-20 08:17:19 -07:00
Konrad Borowski
7ab1c427b5 Replace uses of FnBox; Box<dyn FnOnce> now implements FnOnce. 2019-04-13 09:15:27 -07:00
Jacob Pratt
9b219ddc01 Remove stabilized feature gates.
* try_from
* transpose_result
2019-04-12 18:48:51 -07:00
Oliver Scherer
c86f4312fb Always produce a valid, if conservative, subspan. 2019-02-08 18:03:53 -08:00
Sergio Benitez
f0c6c9b26f Use explicit associated type in 'IntoOwned' impl. 2019-02-06 19:37:39 -08:00
Sergio Benitez
de9a98edd2 Update 'Rocket::custom()' docs to match signature.
Resolves #910.
2019-02-06 17:18:53 -08:00
Chris Foster
4921af459f Fix typo in 'LenientForm' docstring: 'gaurd' -> 'guard'. 2019-01-31 20:15:10 -08:00
jeb
afd08ffb20 Update compiler tests for 2018-12-28 nightly. 2018-12-29 09:31:14 -08:00
Sergio Benitez
ca5623c641 Type encoding to fix encoding issues once and for all.
Fixes #849.
2018-12-12 17:38:36 -08:00
Sergio Benitez
5056705884 Improve query string routing and typed URI docs. 2018-12-07 12:09:15 -08:00
Sergio Benitez
b88a2d7d05 Add notes about enabling features to contrib docs. 2018-12-07 09:07:27 -08:00
Sergio Benitez
a4dcb0cf4c New version: 0.4.0. 2018-12-06 09:19:11 -08:00
Sergio Benitez
7fb6ba9be5 Generate 'FromUriParam' impls in 'UriDisplayPath'. 2018-12-06 09:00:01 -08:00
Sergio Benitez
d7933dd6fd Implement ignorable 'uri!' expressions.
Closes #840.
2018-12-06 08:43:24 -08:00
Sergio Benitez
90a6749313 New version: 0.4.0-rc.2. 2018-11-30 21:00:18 -08:00
Sergio Benitez
7919ceac39 Strip dev-dependencies more reliably. 2018-11-30 20:58:29 -08:00
Sergio Benitez
5ec21d5ba0 Update dependencies to published versions. 2018-11-30 09:00:16 -08:00
Sergio Benitez
ac823861c8 Systematically name and span codegen variables.
Fixes #839.
2018-11-30 08:43:31 -08:00
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
Sergio Benitez
543b07a4ba Use upstream 'Literal::subspan()'. 2018-11-23 19:15:13 -06:00
jeb
ed4055925d Use 'dyn' in codegen to silence 'bare_trait_objects' lint. 2018-11-19 02:34:46 -08:00
Sergio Benitez
abb434f228 Stop using white for legible logging everywhere.
Prior to this change, Rocket emitted "white" text in much of its logging
output. On terminals with light backgrounds, the text was nearly
illegible. This PR stops using white coloring altogether, opting instead
to use the terminal's default color albeit with bold styling. On dark
terminals, this will likely be a light color, and on light terminals,
this will likely be a dark color. The end result is that Rocket's
logging output should be readable everywhere.

Resolves #639.
2018-11-19 02:11:38 -08:00
Sergio Benitez
76c830a467 Update 'base64', 'crossbeam', 'rand' dependencies. 2018-11-18 03:47:12 -08:00
Sergio Benitez
3b6c4d2a5f Prefix codegen imports to avoid name collisions.
Fixes #817.
2018-11-12 13:08:39 -08:00
Sergio Benitez
834c91ae9d Remove the need for a current working directory.
This commit includes several breaking changes:

  * `Config{new,development,staging,production}` constructors return a
    `Config` instead of a `Result<Config>`.
  * `Config.root()` returns an `Option<&Path>` instead of `&Path`.
  * `ConfigError::BadCWD` was removed.
  * `Config` no longer exposes a `config_path` field.

Resolves #809.
2018-11-12 02:24:13 -08:00
Alva Snædís
4dea9eed36 Mention that u128, i128 implement UriDisplay. 2018-11-11 21:51:42 -08:00
Alva Snædís
b87994b52c Implement FromParam, FromFormValue for i128, u128. 2018-11-11 21:51:24 -08:00
Sergio Benitez
4224419e63 Reduce 'cfg' usage for 'private-cookies' feature. 2018-11-08 23:56:15 -08:00
Linus Unnebäck
53758c6dd7 Introduce the 'private-cookies' feature. 2018-11-08 23:38:18 -08:00
Sergio Benitez
b16269a30e Add note about cookie tracking serialization. 2018-11-08 21:40:42 -08:00
messense
64ba2056ef Use 'RwLock' to make 'Client' 'Sync'.
Resolves #814.
2018-11-08 21:40:34 -08:00
Alex Bowers
32e2ff4d6b Add ZIP (application/zip) as a known media type. 2018-11-08 20:47:26 -08:00
Sergio Benitez
a2ada84986 Move 'UriDisplay' note to top of 'FromUriParam' docs. 2018-11-05 15:02:11 -08:00
Sergio Benitez
983ee9b32d Make inner 'LenientForm' field public. Add 'State::from()'. 2018-11-03 01:52:19 -07:00
Rukai
b4f85daaf2 Make inner 'Form' field public. 2018-11-02 18:04:27 -07:00
Sergio Benitez
5762208bba Percent-encode characters: '[', ']', '\', '^', '|'.
Fixes #808.
2018-11-02 00:10:01 -07:00
Sergio Benitez
4dbd87a36f New version: 0.4.0-rc.1. 2018-10-31 14:35:30 -07:00
Sergio Benitez
ef3e7ca2c6 Make all top-level crates publishable. 2018-10-31 03:57:37 -07:00
Sergio Benitez
41de1e62fb Implement 'Responder' for 'Status'.
This commit obviates the following removed types:

  * response::Failure
  * response::status::NoContent
  * response::status::Reset

Closes #489.
2018-10-31 03:57:22 -07:00
Sergio Benitez
16a65a9a45 Mention selective importing in 'rocket_codegen' docs. 2018-10-30 02:53:51 -07:00