satex_layer/
set_status.rs

1#![doc = include_str!("../docs/set_status.md")]
2
3use crate::make::MakeRouteLayer;
4use http::StatusCode;
5use satex_core::component::{Args, Configurable};
6use satex_core::Error;
7use satex_macro::make;
8use tower_http::set_status::SetStatusLayer;
9
10#[make(kind = SetStatus)]
11struct MakeSetStatusRouteLayer {
12    status: u16,
13}
14
15impl MakeRouteLayer for MakeSetStatusRouteLayer {
16    type Layer = SetStatusLayer;
17
18    fn make(&self, args: Args) -> Result<Self::Layer, Error> {
19        Config::with_args(args)
20            .and_then(|config| StatusCode::from_u16(config.status).map_err(Error::new))
21            .map(SetStatusLayer::new)
22    }
23}