Commit Graph

1919 Commits

Author SHA1 Message Date
Sergio Benitez
d18103358e Allow 'len()' form field validations on 'Capped'.
This also adds more doctests for the 'with' validator.
2021-06-26 17:11:56 -07:00
Sergio Benitez
a249f26164 Fix link to 'FromForm' derive in 'FromForm' docs. 2021-06-26 17:11:56 -07:00
Sergio Benitez
686a0ed964 Fix wording in 'config' docs. 2021-06-26 17:11:53 -07:00
Sergio Benitez
b00c89c22f Support lifetime bounds in typed stream macros.
The syntax 'TypedStream![T + '_]' expands to:

  impl TypedStream<Item = T> + '_

This allows seamlessly borrowing in typed streams.

Also adds 'Event::empty()', for convenience.
2021-06-26 16:37:21 -07:00
Sergio Benitez
770f332832 Improve 'Responder' API docs.
The improvements are:

  * Point directly and immediately to the 'Responder' derive.
  * Provide more discussion on lifetimes.
  * Format documentation for easier scanning.
2021-06-26 12:41:42 -07:00
Sergio Benitez
d34195fe11 Warn, don't error, if remote hangs up. 2021-06-26 12:05:04 -07:00
Sergio Benitez
ef303d44f8 Fix 'TempFile' data guard warning formatting. 2021-06-26 12:03:52 -07:00
Sergio Benitez
f3e08bf3f6 Add Markdown (text/markdown) as a known media type. 2021-06-26 12:02:19 -07:00
Sergio Benitez
9063cf0ac2 Visiting internal nodes in form field validator.
Previously, recursion into rewriting 'self' in field validations would
cease after the first function call. This meant that internal uses of
'self' were not properly rewritten. This commit ameliorates the
situation.
2021-06-26 12:00:05 -07:00
Sergio Benitez
ac3efbc892 Use configured database pool timeout on pool init. 2021-06-26 11:58:32 -07:00
Sergio Benitez
39a4f7e596 Update GitHub issue templates. 2021-06-25 11:44:14 -07:00
Sergio Benitez
76ec847a58 Use 'RelativePathBuf' as 'Config.temp_dir' type.
This makes a relative 'temp_dir' declared in a config file relative to
the config file itself.
2021-06-25 11:42:49 -07:00
Sergio Benitez
c3ee34e295 Drop sender to prevent async client read deadlock.
Fixes #1729.

Co-authored-by: Wesley Norris <repnop@outlook.com>
2021-06-25 09:27:36 -07:00
Sergio Benitez
0b2fcb9f4b Use Figment's 'Value' in contrib templating.
Previously, 'serde_json::Value' was used to store the serialized
template context. This value does not represent all of serde's data
model. This means we may fail to serialize a valid Rust value into it,
for instance, 128-bit integers. This is reduced with Figment's 'Value',
which supports the majority if not all of the serde data model.

At present, all supported templating engines use 'serde_json::Value', so
in practice, this commit has no effect but to reduce local dependencies
and provide better error messages for bad contexts.
2021-06-25 09:08:49 -07:00
Sergio Benitez
a875da1666 Always disable colors if requested or unavailable.
Resolves #1712.
2021-06-25 09:08:49 -07:00
Jeb Rosen
abf996b026 Update UI tests for latest stable. 2021-06-17 18:49:10 -07:00
Petr Portnov
d9858cf3c7 Add missing documentation for the run() method generated by #[database].
Resolves #1704.
2021-06-17 17:31:53 -07:00
Paul van Tilburg
c1b14084f9 Fix a few minor mistakes in the guide. 2021-06-17 17:21:58 -07:00
timando
c3dc7183f3 Fix Responder documentation: remove an outdated reference to 'Future'. 2021-06-17 17:20:04 -07:00
timando
af1aa079d6 Fix a word in the 'Data::peek' docs: 'max' -> 'min'. 2021-06-14 19:36:03 -07:00
Vasili
f54d913bd3 Fix typo in configuration guide: 'it's' -> 'its'. 2021-06-14 19:36:03 -07:00
Roger Mo
9dc70936a2 Fix typos in fairings guide: 'are are', 'build' -> 'built'. 2021-06-14 19:36:03 -07:00
Yohannes Kifle
b4bfc9f249 Fix typo in requests guide: 'the' -> 'then'. 2021-06-14 19:36:03 -07:00
Thomas Eckert
7cced84c3f Fix link to the JSON example in the requests guide. 2021-06-14 19:36:03 -07:00
Paul Smith
7b757b2d23 Clarify explanation of reinterpreted request methods in the requests guide. 2021-06-14 19:36:03 -07:00
Thibaud Martinez
7fa496f9f8 Fix typo in guide: 'mechnisms' -> 'mechanisms'. 2021-06-14 19:36:03 -07:00
Sergio Benitez
e45e164561 Improve guard forward and failure logs. 2021-06-10 01:25:49 -07:00
Sergio Benitez
c2960e7e6f Uniformly implement utility traits on URI types. 2021-06-09 17:44:12 -07:00
Sergio Benitez
d2c2725689 Implement 'De(Serialize)' for 'Method'. 2021-06-09 17:07:26 -07:00
Sergio Benitez
ca655051ba Update 'state' version in CHANGELOG. 2021-06-09 11:02:30 -07:00
Sergio Benitez
36c1570c61 Fix order of contrib crates in config script. 2021-06-09 09:59:44 -07:00
Sergio Benitez
ecde703bb9 Add news article for v0.5-rc.1. 2021-06-09 09:52:37 -07:00
Sergio Benitez
c028d63e5b New version: 0.5.0-rc.1.
New contrib versions: 0.1.0-rc.1.
2021-06-09 09:52:37 -07:00
Jeb Rosen
b0684c8327 Add initial CHANGELOG for v0.5.
Co-authored-by: Sergio Benitez <sb@sergio.bz>
2021-06-09 09:52:35 -07:00
Sergio Benitez
6961a717d8 Use crates.io compatible internal package names. 2021-06-09 09:47:21 -07:00
Sergio Benitez
1aa551ada6 Ignore heartbeats in non-heartbeat SSE test. 2021-06-09 04:51:46 -07:00
Sergio Benitez
32ec00ca19 Update deps when testing sibling workspaces. 2021-06-09 04:51:46 -07:00
Sergio Benitez
394982edbd Make new contrib libraries publishable. 2021-06-09 04:51:46 -07:00
Sergio Benitez
fe16d11581 Update 'release' date for master. 2021-06-09 04:51:46 -07:00
Sergio Benitez
06455b6eb2 Use crate version in pre-release docs. 2021-06-09 04:51:46 -07:00
Sergio Benitez
01436d2d24 Fix a ton of broken links. 2021-06-09 04:51:46 -07:00
Jeb Rosen
3b5f5afc6e Advertise HTTP/2 support via ALPN. 2021-06-09 04:51:33 -07:00
Sergio Benitez
dd9629697a Use published 'devise'. 2021-06-09 00:46:28 -07:00
Sergio Benitez
f4ecc3e3bd Update 'sqlite' contrib dependencies. 2021-06-09 00:36:25 -07:00
Sergio Benitez
b19544c346 Fix doc typo: "Contracting" -> "Constructing". 2021-06-08 23:13:03 -07:00
Sergio Benitez
128234d9a8 Allow customizing and removing 'Server' header. 2021-06-08 23:09:57 -07:00
Sergio Benitez
6206a46222 Try to preserve header casing in HTTP/1.1.
Unfortunately, this doesn't actually do anything at the moment due to
what appears to be a bug in hyper.
2021-06-08 23:00:59 -07:00
Sergio Benitez
1a42009e9f Fix various generated and direct clippy warnings. 2021-06-08 13:27:09 -07:00
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
Sergio Benitez
7595450adc Use published 'state'. 2021-06-07 20:34:27 -07:00