diff options
author | metamuffin <metamuffin@disroot.org> | 2025-03-04 23:39:04 +0100 |
---|---|---|
committer | metamuffin <metamuffin@disroot.org> | 2025-03-04 23:39:04 +0100 |
commit | e7dc02a0c86c9f0b5d25dff5d20fe53cdbe671cb (patch) | |
tree | 95574b22aad6ec370875115dd28b227586b5ebd2 /src/modules | |
parent | 10dba4e7c79e622249cf4539cff3347619e15059 (diff) | |
download | gnix-e7dc02a0c86c9f0b5d25dff5d20fe53cdbe671cb.tar gnix-e7dc02a0c86c9f0b5d25dff5d20fe53cdbe671cb.tar.bz2 gnix-e7dc02a0c86c9f0b5d25dff5d20fe53cdbe671cb.tar.zst |
improve headers module (breaking change)
Diffstat (limited to 'src/modules')
-rw-r--r-- | src/modules/headers.rs | 19 |
1 files changed, 12 insertions, 7 deletions
diff --git a/src/modules/headers.rs b/src/modules/headers.rs index 52686eb..bdfbdc4 100644 --- a/src/modules/headers.rs +++ b/src/modules/headers.rs @@ -13,8 +13,9 @@ pub struct HeadersKind; #[derive(Deserialize)] pub struct Headers { - headers: HeaderMapWrap, - inner: DynNode, + request: HeaderMapWrap, + response: HeaderMapWrap, + next: DynNode, } impl NodeKind for HeadersKind { @@ -30,13 +31,17 @@ impl Node for Headers { fn handle<'a>( &'a self, context: &'a mut NodeContext, - request: NodeRequest, + mut request: NodeRequest, ) -> Pin<Box<dyn Future<Output = Result<NodeResponse, ServiceError>> + Send + Sync + 'a>> { Box::pin(async move { - let mut resp = self.inner.handle(context, request).await?; - resp.headers_mut() - .extend(self.headers.0.clone().into_iter()); - Ok(resp) + request + .headers_mut() + .extend(self.request.0.clone().into_iter()); + let mut response = self.next.handle(context, request).await?; + response + .headers_mut() + .extend(self.response.0.clone().into_iter()); + Ok(response) }) } } |