1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
//! # modo::extractor
//!
//! Request extractors for the modo web framework.
//!
//! All sanitizing extractors call [`crate::sanitize::Sanitize::sanitize`] on
//! the deserialized value before returning it, so whitespace trimming and other
//! normalization happen automatically.
//!
//! [`Path`] is re-exported directly from axum and behaves identically.
//!
//! ## Extractors
//!
//! | Extractor | Source | Trait bound |
//! |---|---|---|
//! | [`JsonRequest<T>`] | JSON body | `T: DeserializeOwned + Sanitize` |
//! | [`FormRequest<T>`] | URL-encoded form body | `T: DeserializeOwned + Sanitize` |
//! | [`Query<T>`] | URL query string | `T: DeserializeOwned + Sanitize` |
//! | [`MultipartRequest<T>`] | `multipart/form-data` body | `T: DeserializeOwned + Sanitize` |
//! | [`Path`] | URL path parameters | `T: DeserializeOwned` |
//! | [`Service<T>`] | Service registry | `T: Send + Sync + 'static` |
//! | [`ClientInfo`] | Client IP, user-agent, fingerprint | — |
//!
//! ## Multipart helpers
//!
//! | Type | Purpose |
//! |---|---|
//! | [`UploadedFile`] | Single file extracted from a multipart field |
//! | [`Files`] | Map of field names to uploaded files |
//! | [`UploadValidator`] | Fluent size/content-type validator for [`UploadedFile`] |
pub use Path;
pub use ClientInfo;
pub use FormRequest;
pub use JsonRequest;
pub use ;
pub use Query;
pub use Service;
pub use UploadValidator;