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