satex_layer/
set_status.rs1#![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}