ft_sdk/from_request/
mod.rs1mod app_url;
2mod config;
3#[cfg(feature = "field-extractors")]
4mod cookie;
5#[cfg(feature = "field-extractors")]
6mod default;
7mod form;
8pub mod handler;
9mod headers;
10#[cfg(feature = "field-extractors")]
11mod hidden;
12mod host;
13mod json;
14#[cfg(feature = "field-extractors")]
15mod optional;
16mod package;
17mod path;
18#[cfg(feature = "field-extractors")]
19mod query;
20#[cfg(feature = "field-extractors")]
21mod required;
22mod scheme;
23pub mod wrapped_processor;
24
25#[cfg(feature = "field-extractors")]
26pub use {
27 app_url::{AppUrl, RequiredAppUrl},
28 cookie::Cookie,
29 default::Default,
30 hidden::Hidden,
31 optional::Optional,
32 query::Query,
33 required::Required,
34};
35pub use {
36 config::Config,
37 form::Form,
38 host::Host,
39 json::Json,
40 package::{MainPackage, WasmPackage},
41 path::Path,
42 scheme::Scheme,
43};
44
45pub trait FromRequest: Sized {
46 fn from_request(req: &http::Request<serde_json::Value>) -> Result<Self, ft_sdk::Error>;
47}
48
49impl FromRequest for chrono::DateTime<chrono::Utc> {
50 fn from_request(_req: &http::Request<serde_json::Value>) -> Result<Self, ft_sdk::Error> {
51 Ok(ft_sdk::env::now())
52 }
53}
54
55impl FromRequest for ft_sdk::Connection {
56 fn from_request(_req: &http::Request<serde_json::Value>) -> Result<Self, ft_sdk::Error> {
57 Ok(ft_sdk::default_connection()?)
58 }
59}
60
61pub trait WrappedFromRequest: FromRequest {
63 fn wrap(self, output: serde_json::Value) -> Result<serde_json::Value, ft_sdk::Error>;
64}