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, cookie::Cookie, default::Default, hidden::Hidden, optional::Optional,
28 query::Query, required::Required,
29};
30pub use {
31 config::Config,
32 form::Form,
33 host::Host,
34 json::Json,
35 package::{MainPackage, WasmPackage},
36 path::Path,
37 scheme::Scheme,
38};
39
40pub trait FromRequest: Sized {
41 fn from_request(req: &http::Request<serde_json::Value>) -> Result<Self, ft_sdk::Error>;
42}
43
44impl FromRequest for chrono::DateTime<chrono::Utc> {
45 fn from_request(_req: &http::Request<serde_json::Value>) -> Result<Self, ft_sdk::Error> {
46 Ok(ft_sdk::env::now())
47 }
48}
49
50impl FromRequest for ft_sdk::Connection {
51 fn from_request(_req: &http::Request<serde_json::Value>) -> Result<Self, ft_sdk::Error> {
52 Ok(ft_sdk::default_connection()?)
53 }
54}
55
56pub trait WrappedFromRequest: FromRequest {
58 fn wrap(self, output: serde_json::Value) -> Result<serde_json::Value, ft_sdk::Error>;
59}