Sergio Benitez
d3e2d829c7
Remove all Hyper* types in favor of hyper::*.
2016-12-15 09:24:29 -08:00
Sergio Benitez
0cc379b82f
Parse and test params in ContentType.
2016-12-15 08:49:10 -08:00
Sergio Benitez
44f5f1998d
New HTTP types: ContentType, Status. Responder/Handler/ErrorHandler changed.
...
This is a complete rework of `Responder`s and of the http backend in
general. This gets Rocket one step closer to HTTP library independence,
enabling many future features such as transparent async I/O, automatic
HEAD request parsing, pre/post hooks, and more.
Summary of changes:
* `Responder::response` no longer takes in `FreshHyperResponse`.
Instead, it returns a new `Response` type.
* The new `Response` type now encapsulates a full HTTP response. As a
result, `Responder`s now return it.
* The `Handler` type now returns an `Outcome` directly.
* The `ErrorHandler` returns a `Result`. It can no longer forward,
which made no sense previously.
* `Stream` accepts a chunked size parameter.
* `StatusCode` removed in favor of new `Status` type.
* `ContentType` significantly modified.
* New, lightweight `Header` type that plays nicely with `Response`.
2016-12-15 00:47:31 -08:00
Sergio Benitez
5fca86c84f
New version: 0.0.11.
2016-12-11 22:23:08 -08:00
Sergio Benitez
6bc0fa8871
Make note about implementing auto HEAD handling.
2016-12-11 21:20:30 -08:00
Sergio Benitez
e6fa01607f
Link to Stream in Responder docs.
2016-12-11 01:40:03 -08:00
Sergio Benitez
3dc82e2349
HTML escape < in Responder docs.
2016-12-10 17:58:52 -08:00
Sergio Benitez
4f89e232aa
HTML escape < in FromParam docs.
2016-12-10 17:41:44 -08:00
Sergio Benitez
470dc7f63c
Improve FromParam documentation.
2016-12-10 02:55:25 -08:00
Sergio Benitez
a818976b08
Add example implementation for Responder.
2016-12-09 20:59:58 -08:00
Sergio Benitez
d0136235d7
Remove with_status and StatusResponder in favor of status module.
2016-12-09 19:53:13 -08:00
Sergio Benitez
a2e99985b0
Fix data buffer indexing bug. Add from_request example.
2016-11-21 00:45:44 -08:00
Sergio Benitez
b38942ad00
Avoid double logger initialization by removing logger init in Rocket::custom.
2016-11-11 14:04:00 -08:00
Sergio Benitez
ba88fcdc95
Document FromRequest. Clarify FromFormValue::default.
2016-11-06 17:07:47 +01:00
Sergio Benitez
006a35a8a9
Add an example to Rocket::catch docs.
2016-11-05 19:35:21 +01:00
Sergio Benitez
2cc0251a22
Further document the Catcher type. Register a catcher in the manual example.
2016-11-05 19:31:50 +01:00
Sergio Benitez
a5599aac9c
Hide all of the logger macros, for now.
2016-11-04 15:38:06 +01:00
Sergio Benitez
4d189df884
Fix the tests for latest changes.
2016-11-04 15:11:59 +01:00
Sergio Benitez
d7353c8c2d
Document the Rocket type. Add expect method to Outcome. Add custom method to Rocket.
2016-11-04 14:35:04 +01:00
Sergio Benitez
dd030334e4
Document the Error type.
2016-11-03 19:00:52 +01:00
Sergio Benitez
32e22fc8e1
Document the content module, complete response documentation.
2016-11-03 18:54:37 +01:00
Sergio Benitez
553082f026
Document all of the core response types.
2016-11-03 17:05:41 +01:00
Sergio Benitez
129268506e
Document Responder. Further document Flash. Implement Debug for most Responder types.
2016-11-03 15:09:01 +01:00
Sergio Benitez
c2d3bdccdb
Document the Failure and Flash responses.
2016-11-02 18:48:43 +01:00
Sergio Benitez
004cae7627
Fix codegen tests for new lib. Make UTF8 charset the default for text content types.
2016-11-02 17:39:41 +01:00
Sergio Benitez
c98d047038
Add URI::percent_decoding helper method. Safeguard Pathbuf FromSegments implementation.
2016-11-02 16:55:56 +01:00
Sergio Benitez
4326c9103e
Propogate error types in FromParam and FromSegment parses.
2016-10-31 18:51:19 +01:00
Sergio Benitez
639cd425ee
Add Debug bound to associated parsing Errors.
2016-10-31 18:31:39 +01:00
Sergio Benitez
785d0d2a6a
Fix URI display for root path.
2016-10-31 17:32:43 +01:00
Sergio Benitez
d91e3e0454
Add the [global] psuedo-environment for global configuration.
2016-10-31 17:00:32 +01:00
Sergio Benitez
da7cb44671
Add more testing module documentation. Fix test for latest nightly.
2016-10-31 10:21:19 +01:00
Sergio Benitez
5766766659
Use a 'Sync' type for the session key.
2016-10-25 17:07:39 +02:00
Sergio Benitez
25d55b4b0f
Disallow use of data parameter with non-payload methods.
2016-10-25 16:42:10 +02:00
Sergio Benitez
fb67681adc
Don't reexport IntoOutcome trait.
2016-10-25 13:39:31 +02:00
Sergio Benitez
81113ecf50
Remove public qualification from private data modules.
2016-10-25 13:35:02 +02:00
Sergio Benitez
1849365eda
Inline the Data struct in docs.
2016-10-25 13:27:16 +02:00
Sergio Benitez
6a8d64f69b
Move the data module into the top-level namespace.
2016-10-25 13:24:07 +02:00
Sergio Benitez
f5a5ea3a22
Rename `data` to `content` in `response`. Remove `DataOutcome`.
2016-10-25 13:03:50 +02:00
Sergio Benitez
5447f81f77
Remove RequestOutcome, ResponseOutcome in favor of Outcome. Remove Failure response type.
2016-10-25 11:17:49 +02:00
Sergio Benitez
2f04027c5f
Document the testing module.
2016-10-25 10:16:34 +02:00
Sergio Benitez
11b6158276
Refine request module API docs.
2016-10-24 10:09:50 +02:00
Sergio Benitez
e70fcd78b9
Properly escape ticks for markdown in Form docs.
2016-10-21 09:06:40 -07:00
Sergio Benitez
2da43e24f7
Document most of the request module.
2016-10-21 02:56:57 -07:00
Sergio Benitez
81f45608a1
Document outcome module.
2016-10-19 00:30:02 -07:00
Sergio Benitez
2a0535e1f7
Document the config module.
2016-10-18 12:04:56 -07:00
Sergio Benitez
5a1a303c59
Document the http module.
2016-10-17 19:29:58 -07:00
Sergio Benitez
762b38efe9
Add fragment support to URI type.
2016-10-17 17:21:29 -07:00
Sergio Benitez
a145a11848
Add tests to the hello_world, helllo_ranks, and hello_person examples.
2016-10-17 15:14:57 -07:00
Sergio Benitez
33f0274f62
Remove unused Rocket::config method.
2016-10-16 03:21:34 -07:00
Sergio Benitez
bc5ecb31df
Implement a small testing framework in the 'testing' module.
2016-10-16 03:16:16 -07:00
Sergio Benitez
3008820494
Seperate request dispatch into hyper and non-hyper parts.
2016-10-16 00:03:08 -07:00
Sergio Benitez
471239c567
Protect the session_key from external libs. Clean-up config docs.
2016-10-15 18:58:57 -07:00
Sergio Benitez
cf9f746ee2
Remove question_mark feature: it's been stabalized!
2016-10-14 19:07:22 -07:00
Sergio Benitez
1323e7a420
Add `config::get()`, for global config access. Use it for `Template`.
2016-10-14 18:57:36 -07:00
Sergio Benitez
722f613686
Use Outcome as the result of all fallible conversions.
2016-10-13 18:39:23 -07:00
Sergio Benitez
b4305cb430
Use 'Content-Type' for format routing. Simplify 'raw_upload' example.
2016-10-12 19:08:19 -07:00
Sergio Benitez
2f35b23514
Remove non-streaming requests. Use streaming requests everywhere.
...
This commit includes the following important API changes:
* The `form` route parameter has been removed.
* The `data` route parameter has been added.
* Forms are not handled via the `data` parameter and `Form` type.
* Removed the `data` parameter from `Request`.
* Added `FromData` conversion trate and default implementation.
* Added `DataOutcome` enum, which is the return type of `from_data`.
* 'FromData' is now used to automatically derive the `data` parameter.
* Moved `form` into `request` module.
* Removed `Failure::new` in favor of direct value construction.
This commit includes the following important package additions:
* Added a 'raw_upload' example.
* `manual_routes` example uses `Data` parameter.
* Now building and running tests with `--all-features` flag.
* All exmaples have been updated to latest API.
* Now using upstream Tera.
This commit includes the following important fixes:
* Any valid ident is now allowed in single-parameter route parameters.
* Lifetimes are now properly stripped in code generation.
* `FromForm` derive now works on empty structs.
2016-10-12 00:14:42 -07:00
Sergio Benitez
d8db812856
Implement streaming requests.
2016-10-09 04:29:02 -07:00
Sergio Benitez
07204a25dd
Remove Rocket::from_hyp in favor of Rocket::new.
2016-10-08 21:37:28 -07:00
Sergio Benitez
a7b180c911
Remove Empty response.
2016-10-08 20:57:39 -07:00
Sergio Benitez
619b1d787e
Rename Response::new to complete. Add Response::failure using newly added Failure response.
2016-10-08 20:53:04 -07:00
Sergio Benitez
0144b70fac
Cleanup documentation related code.
2016-10-08 04:42:22 -07:00
Sergio Benitez
e30e4e6c7f
Make 'http' public.
2016-10-08 04:29:20 -07:00
Sergio Benitez
c4b817ae0b
Cleanup dispatch messages and comments.
2016-10-07 23:37:29 -07:00
Sergio Benitez
8c0d11feab
Completely new raw API.
...
Summary of changes:
* Request no longer has a lifetime parameter.
* Handler type now includes a `Data` parameter.
* Response is now an enum that is either `Complete` or `Forward`.
* Outcome enum is now one of: Success, Failure, Forward.
* Outcome::Foward for Responses must include StatusCode.
* Responders are now final: they cannot forward to requests. (!!)
* Responsers may only forward to catchers. (!!)
* Response no longer provides wrapping methods.
* Route is now cloneable.
This change is fundamental to enabling streaming requests.
2016-10-07 23:20:49 -07:00
Sergio Benitez
59623d936f
Add a default template for every known error code.
2016-10-07 21:31:52 -07:00
Sergio Benitez
37e6a367b8
Move the form module under request and outcome to top-level.
2016-10-07 19:27:50 -07:00
Sergio Benitez
be3530bb44
Make Outcome generic on its encapsulated type.
2016-10-07 19:09:05 -07:00
Sergio Benitez
6578de4615
Always inline appropriate Request methods.
2016-10-06 21:04:35 -07:00
Sergio Benitez
39f7f2d32b
Remove unneeded lifetime in Request.
...
Previously, a Request's only lifetime parameter referred to itself. This
causes many issues and is simply wrong. Instead, use `transmute` to make
the lifetime `static`. As long the contents inside Request don't move or
change, the references are valid. We keep the lifetime as a phantom in
`Request` for future use.
2016-10-06 20:57:17 -07:00
Sergio Benitez
bcb9bd860b
Allow different lifetimes in handler Request reference and its contents.
2016-10-06 20:38:13 -07:00
Sergio Benitez
639a78a8d6
Add a bad_request response type. Use it when form's aren't utf8.
2016-10-06 00:16:15 -07:00
Sergio Benitez
650d079b58
Make the `uri` parameter in Request private.
2016-10-06 00:08:00 -07:00
Sergio Benitez
d4f9525b22
Allow error handlers to take 0, 1, or 2 parameters.
...
fixes #13
2016-10-04 15:05:25 -07:00
Sergio Benitez
63d31e8082
Simplify a branch in check_config macro.
2016-10-04 15:05:25 -07:00
Sergio Benitez
2ad508ed96
Test config and environments.
...
resolves #11
2016-10-04 15:05:25 -07:00
Sergio Benitez
463df9d1df
New version: 0.0.10.
2016-10-04 15:05:16 -07:00
Sergio Benitez
4b6c72e33f
Use move builder pattern to launch Rocket apps.
2016-10-03 19:48:33 -07:00
Sergio Benitez
7b1dc5a1a4
Remove Rocket::new(). Use 'ignite' everywhere.
2016-10-03 19:37:49 -07:00
Sergio Benitez
d631dfd300
Use ignite in README example. Check ROCKET_ENV without Rocket.toml being present.
2016-10-03 19:21:21 -07:00
Sergio Benitez
647efe15d1
Move uri module into http namespace.
2016-10-03 17:25:27 -07:00
Sergio Benitez
74ec26db95
Namespace HTTP-related type under `http`.
2016-10-03 17:09:13 -07:00
Sergio Benitez
17b88d0a6b
Implement configuration and environments.
2016-10-03 03:39:56 -07:00
Sergio Benitez
39c979db4c
Add library and usage information to main API doc.
2016-10-02 17:52:04 -07:00
Sergio Benitez
7dc6e432b8
Change wordering of ContentType structure docs.
2016-09-30 20:31:32 -07:00
Sergio Benitez
320f2e0efa
Document Request.
2016-09-30 20:22:06 -07:00
Sergio Benitez
9e402dfd07
Revert visibility change in ContentType constructor.
2016-09-30 20:10:49 -07:00
Sergio Benitez
57f79ca867
Document ContentType.
2016-09-30 20:04:43 -07:00
Sergio Benitez
a29d56c52e
Reform top-level libs mostly according to Rustfmt.
2016-09-30 15:20:11 -07:00
Sergio Benitez
008605bec7
This commit changes parsing traits and documents some of the core library:
...
* All From* trait methods are now named like the trait.
* All From* traits have an associated Error type.
* Document all of the `form` module.
* Add codegen tests for auto-derived forms.
* The param parsing traits now live under Request.
2016-09-30 01:25:07 -07:00
Sergio Benitez
76cbc14d23
Cleanup core library documentation.
2016-09-29 21:44:27 -07:00
Sergio Benitez
1c4e0350d9
Use strict version numbers. Bump Rocket version.
2016-09-29 20:49:18 -07:00
Sergio Benitez
a6cd1bd5bd
Clean-up form parsing tests.
2016-09-28 20:39:25 -07:00
Sergio Benitez
23808d00bc
This commit squash three form-related commits:
...
Remove form_items function in favor of FormItems iterator.
Add specialized `bool` implementation of FromFormValue.
Add `&str` implementation of FromFormValue for debugging.
2016-09-28 19:29:18 -07:00
Sergio Benitez
b72ac78ce8
Add file test case for streaming. Fix streaming responder.
...
resolves #3
2016-09-25 04:07:03 -07:00
Sergio Benitez
5b5cb7e087
Send the correct content type in Template contrib.
2016-09-25 03:06:02 -07:00
Sergio Benitez
b175de03ad
Move extension derived content type into ContentType.
2016-09-25 02:51:18 -07:00
Sergio Benitez
cd4af6836a
Add request preprocessing for _method in forms.
...
resolves #12
2016-09-25 02:26:15 -07:00
Sergio Benitez
a967018009
Add guide outline. Remove unused file.
2016-09-22 22:09:41 -07:00
Sergio Benitez
f74e286e31
Add templating support in contrib crate.
...
The contrib crate now contains support for both Handlebars and Tera. No
documentation yet.
resolves #5
2016-09-22 04:12:07 -07:00