use serde::{Deserialize, Serialize};
use tower::layer::layer_fn;
use tower_http::limit::RequestBodyLimit;
use tower_http::map_request_body::MapRequestBody;
use super::ApplyLayer;
#[derive(Clone, Debug, Serialize, Deserialize, PartialEq, Eq, Hash)]
pub struct RequestBodyLimitConfig {
limit: usize,
}
pub fn from_config(config: RequestBodyLimitConfig) -> anyhow::Result<impl ApplyLayer> {
Ok(layer_fn(move |s| {
RequestBodyLimit::new(MapRequestBody::new(s, axum::body::boxed), config.limit)
}))
}