middleware improvements

This commit is contained in:
Aiden McClelland
2021-08-09 11:58:40 -06:00
parent d45cbcdd8a
commit 9aae157d60
3 changed files with 27 additions and 3 deletions

View File

@@ -1,4 +1,5 @@
use std::future::Future;
use std::sync::Arc;
use futures::future::BoxFuture;
use futures::FutureExt;
@@ -163,7 +164,7 @@ pub fn constrain_middleware<
'c,
'd,
M: Metadata,
ReqFn: Fn(&'a mut Request<Body>, M) -> ReqFut,
ReqFn: Fn(&'a mut Request<Body>, M) -> ReqFut + Clone,
ReqFut: Future<Output = Result<Result<RpcReqFn, Response<Body>>, HttpError>> + 'a,
RpcReqFn: FnOnce(
&'b mut RequestParts,

View File

@@ -8,7 +8,8 @@ use rpc_toolkit::clap::Arg;
use rpc_toolkit::hyper::http::Error as HttpError;
use rpc_toolkit::hyper::{Body, Response};
use rpc_toolkit::rpc_server_helpers::{
DynMiddlewareStage2, DynMiddlewareStage3, DynMiddlewareStage4,
constrain_middleware, DynMiddleware, DynMiddlewareStage2, DynMiddlewareStage3,
DynMiddlewareStage4,
};
use rpc_toolkit::serde::{Deserialize, Serialize};
use rpc_toolkit::url::Host;
@@ -215,3 +216,8 @@ fn cli_example() {
}), data: () }
)
}
fn type_check() {
let middleware: DynMiddleware<dothething::Metadata> = todo!();
constrain_middleware(&middleware);
}