2个不稳定版本
0.2.0 | 2024年7月24日 |
---|---|
0.1.0 | 2023年12月29日 |
#922 在 Rust模式
515 每月下载量
用于 4 crates
32KB
858 代码行
xitca的异步特性行为
lib.rs
:
组合异步函数的特性行为。
示例
use core::convert::Infallible;
use xitca_service::{fn_service, Service, ServiceExt};
// a middleware function that has ownership of the argument and output of S as Service
// trait implementor.
async fn middleware<S>(s: &S, req: String) -> Result<String, Infallible>
where
S: Service<String, Response = String, Error = Infallible>
{
let req2 = req.clone();
let mut res = s.call(req).await?;
assert_eq!(res, req2);
res.push_str("-dagongren");
Ok(res)
}
// apply middleware to async function as service.
let builder = fn_service(|req: String| async { Ok::<_, Infallible>(req) })
.enclosed_fn(middleware);
// build the composited service.
let service = builder.call(()).await?;
// execute the service function with string argument.
let res = service.call("996".to_string()).await?;
assert_eq!(res, "996-dagongren");