spacegate_kernel/backend_service/
echo.rs

1use std::convert::Infallible;
2
3use hyper::{Request, Response};
4
5use tracing::instrument;
6
7use crate::{extension::Reflect, SgBody, SgResponseExt};
8
9#[instrument]
10#[cold]
11/// just return the body, you may use this service for test
12pub async fn echo(mut req: Request<SgBody>) -> Result<Response<SgBody>, Infallible> {
13    let reflect = req.extensions_mut().remove::<Reflect>();
14    let body = req.into_body();
15
16    let mut resp = Response::builder().body(body).unwrap_or_else(Response::bad_gateway);
17    if let Some(reflect) = reflect {
18        resp.extensions_mut().insert(reflect);
19    }
20    Ok(resp)
21}