ft_sdk/from_request/
package.rs

1#[derive(Clone)]
2pub struct WasmPackage(pub String);
3
4impl ft_sdk::FromRequest for WasmPackage {
5    fn from_request(req: &http::Request<serde_json::Value>) -> Result<Self, ft_sdk::Error> {
6        Ok(WasmPackage(
7            req.headers()
8                .get("x-fastn-wasm-package")
9                .and_then(|v| v.to_str().ok())
10                .unwrap_or_default()
11                .to_string(),
12        ))
13    }
14}
15
16impl std::fmt::Display for WasmPackage {
17    fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result {
18        f.write_str(&self.0)
19    }
20}
21
22#[derive(Clone)]
23pub struct MainPackage(pub String);
24
25impl ft_sdk::FromRequest for MainPackage {
26    fn from_request(req: &http::Request<serde_json::Value>) -> Result<Self, ft_sdk::Error> {
27        Ok(MainPackage(
28            req.headers()
29                .get("x-fastn-main-package")
30                .and_then(|v| v.to_str().ok())
31                .unwrap_or_default()
32                .to_string(),
33        ))
34    }
35}
36
37impl std::fmt::Display for MainPackage {
38    fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result {
39        f.write_str(&self.0)
40    }
41}
42
43impl AsRef<str> for WasmPackage {
44    fn as_ref(&self) -> &str {
45        &self.0
46    }
47}