Rocket/core/lib/tests
Sergio Benitez 4c6562cd29 Drop 'Data' after sending a response, not before.
This allows responses to be sent to the client even when data is only
partially read, significantly improving the experience for the client
from one with a "connection closed" error to one with a proper response.
The consequence is a lifetime in 'Data'.

Though other non-lifetime-introducing solutions exist, the introduction
of a lifetime to 'Data' is a longstanding desire as it prevents
smuggling 'Data' into a longer-lived context. Use of 'Data' in that
context was unspecified with various runtime consequences. The addition
of a lifetime bound by the request prevents this error statically.

In summary, the changes are:
  * Clients receive responses even when data isn't fully read.
  * 'Data' becomes 'Data<'r>'. 'FromData' changes accordingly.
  * Route 'Outcome's are strictly tied to the request lifetime.

Tangentially, the invalid length form field validation error message has
improved to format length in byte units if it exceeds 1024.
2021-06-08 13:26:16 -07:00
..
static Graduate 'serve' into core as 'fs', 'FileServer'. 2021-05-22 11:15:56 -07:00
absolute-uris-okay-issue-443.rs Overhaul URI types, parsers, 'uri!' macro. 2021-05-19 18:47:11 -07:00
can-correct-bad-local-uri.rs Impl 'DerefMut', 'inner_mut()' for 'LocalRequest'. 2021-04-13 17:40:22 -07:00
catcher-cookies-1213.rs Rename 'rocket::ignite()' to 'rocket::build()'. 2021-04-08 01:07:52 -07:00
conditionally-set-server-header-996.rs Revamp 'Response', 'Body' types. 2021-04-28 02:21:33 -07:00
config-secret-key-1500.rs Remove 'Config::profile()'. CFG 'secret_key' field. 2021-03-09 21:40:53 -08:00
derive-reexports.rs Test 'secret_key' validation, now on pre-launch. 2021-03-09 21:57:26 -08:00
encoded-uris.rs Test 'secret_key' validation, now on pre-launch. 2021-03-09 21:57:26 -08:00
fairing_before_head_strip-issue-546.rs Retrieve managed state via a borrow: '&State<T>'. 2021-05-11 08:58:16 -05:00
file_server.rs Graduate 'serve' into core as 'fs', 'FileServer'. 2021-05-22 11:15:56 -07:00
flash-lazy-removes-issue-466.rs Rename 'Flash' 'name', 'msg' to 'kind', 'message'. 2021-04-07 23:09:05 -07:00
form-validation-names.rs UTF-8 routes. Forms revamp. Temp files. Capped. 2021-03-04 01:51:21 -08:00
form_method-issue-45.rs Test 'secret_key' validation, now on pre-launch. 2021-03-09 21:57:26 -08:00
form_value_decoding-issue-82.rs Test 'secret_key' validation, now on pre-launch. 2021-03-09 21:57:26 -08:00
form_value_from_encoded_str-issue-1425.rs UTF-8 routes. Forms revamp. Temp files. Capped. 2021-03-04 01:51:21 -08:00
head_handling.rs Revamp 'Response', 'Body' types. 2021-04-28 02:21:33 -07:00
http_uri_serde.rs Fixup URI (de)serialization. 2021-05-24 12:16:03 -07:00
launch-inspect.rs Introduce statically-enforced 'Rocket' phasing. 2021-04-13 19:26:45 -07:00
limits.rs Introduce statically-enforced 'Rocket' phasing. 2021-04-13 19:26:45 -07:00
local-client-access-runtime-in-drop.rs Rename 'rocket::ignite()' to 'rocket::build()'. 2021-04-08 01:07:52 -07:00
local-request-content-type-issue-505.rs Drop 'Data' after sending a response, not before. 2021-06-08 13:26:16 -07:00
local_request_private_cookie-issue-368.rs Rename 'rocket::ignite()' to 'rocket::build()'. 2021-04-08 01:07:52 -07:00
many-cookie-jars-at-once.rs Introduce statically-enforced 'Rocket' phasing. 2021-04-13 19:26:45 -07:00
mapped-base-issue-1262.rs Introduce statically-enforced 'Rocket' phasing. 2021-04-13 19:26:45 -07:00
mount_point.rs Rename 'rocket::ignite()' to 'rocket::build()'. 2021-04-08 01:07:52 -07:00
nested-fairing-attaches.rs Retrieve managed state via a borrow: '&State<T>'. 2021-05-11 08:58:16 -05:00
on_launch_fairing_can_inspect_port.rs Introduce statically-enforced 'Rocket' phasing. 2021-04-13 19:26:45 -07:00
panic-handling.rs Drop 'Data' after sending a response, not before. 2021-06-08 13:26:16 -07:00
precise-content-type-matching.rs Introduce statically-enforced 'Rocket' phasing. 2021-04-13 19:26:45 -07:00
recursive-singleton-fairing.rs Introduce 'Singleton' fairings. 2021-05-22 11:01:00 -07:00
redirect_from_catcher-issue-113.rs Rename 'rocket::ignite()' to 'rocket::build()'. 2021-04-08 01:07:52 -07:00
replace-content-type-518.rs Drop 'Data' after sending a response, not before. 2021-06-08 13:26:16 -07:00
responder_lifetime-issue-345.rs Retrieve managed state via a borrow: '&State<T>'. 2021-05-11 08:58:16 -05:00
route_guard.rs Rename 'rocket::ignite()' to 'rocket::build()'. 2021-04-08 01:07:52 -07:00
scoped-uri.rs Overhaul URI types, parsers, 'uri!' macro. 2021-05-19 18:47:11 -07:00
segments-issues-41-86.rs Overhaul URI types, parsers, 'uri!' macro. 2021-05-19 18:47:11 -07:00
sentinel.rs Discover sentinels in known type macros. 2021-06-03 19:31:30 -07:00
session-cookies-issue-1506.rs Rename 'rocket::ignite()' to 'rocket::build()'. 2021-04-08 01:07:52 -07:00
shield.rs Graduate 'helmet' as 'shield' into core. 2021-05-22 11:01:00 -07:00
strict_and_lenient_forms.rs Test 'secret_key' validation, now on pre-launch. 2021-03-09 21:57:26 -08:00
timer-on-attach.rs Introduce statically-enforced 'Rocket' phasing. 2021-04-13 19:26:45 -07:00
tls-config-from-source-1503.rs Graduate 'serve' into core as 'fs', 'FileServer'. 2021-05-22 11:15:56 -07:00
twice_managed_state.rs Rename 'rocket::ignite()' to 'rocket::build()'. 2021-04-08 01:07:52 -07:00
typed-uri-docs-redef-issue-1373.rs Generate 'uri!' macro names independently of span. 2020-07-14 00:44:59 -07:00
unsound-local-request-1312.rs Test 'secret_key' validation, now on pre-launch. 2021-03-09 21:57:26 -08:00
untracked-vs-tracked.rs Introduce statically-enforced 'Rocket' phasing. 2021-04-13 19:26:45 -07:00
uri-percent-encoding-issue-808.rs Overhaul URI types, parsers, 'uri!' macro. 2021-05-19 18:47:11 -07:00