summaryrefslogtreecommitdiff
path: root/vendor/hyper/src/service/util.rs
diff options
context:
space:
mode:
Diffstat (limited to 'vendor/hyper/src/service/util.rs')
-rw-r--r--vendor/hyper/src/service/util.rs82
1 files changed, 0 insertions, 82 deletions
diff --git a/vendor/hyper/src/service/util.rs b/vendor/hyper/src/service/util.rs
deleted file mode 100644
index 3e017a78..00000000
--- a/vendor/hyper/src/service/util.rs
+++ /dev/null
@@ -1,82 +0,0 @@
-use std::error::Error as StdError;
-use std::fmt;
-use std::future::Future;
-use std::marker::PhantomData;
-
-use crate::body::Body;
-use crate::service::service::Service;
-use crate::{Request, Response};
-
-/// Create a `Service` from a function.
-///
-/// # Example
-///
-/// ```
-/// use bytes::Bytes;
-/// use hyper::{body, Request, Response, Version};
-/// use http_body_util::Full;
-/// use hyper::service::service_fn;
-///
-/// let service = service_fn(|req: Request<body::Incoming>| async move {
-/// if req.version() == Version::HTTP_11 {
-/// Ok(Response::new(Full::<Bytes>::from("Hello World")))
-/// } else {
-/// // Note: it's usually better to return a Response
-/// // with an appropriate StatusCode instead of an Err.
-/// Err("not HTTP/1.1, abort connection")
-/// }
-/// });
-/// ```
-pub fn service_fn<F, R, S>(f: F) -> ServiceFn<F, R>
-where
- F: Fn(Request<R>) -> S,
- S: Future,
-{
- ServiceFn {
- f,
- _req: PhantomData,
- }
-}
-
-/// Service returned by [`service_fn`]
-pub struct ServiceFn<F, R> {
- f: F,
- _req: PhantomData<fn(R)>,
-}
-
-impl<F, ReqBody, Ret, ResBody, E> Service<Request<ReqBody>> for ServiceFn<F, ReqBody>
-where
- F: Fn(Request<ReqBody>) -> Ret,
- ReqBody: Body,
- Ret: Future<Output = Result<Response<ResBody>, E>>,
- E: Into<Box<dyn StdError + Send + Sync>>,
- ResBody: Body,
-{
- type Response = crate::Response<ResBody>;
- type Error = E;
- type Future = Ret;
-
- fn call(&self, req: Request<ReqBody>) -> Self::Future {
- (self.f)(req)
- }
-}
-
-impl<F, R> fmt::Debug for ServiceFn<F, R> {
- fn fmt(&self, f: &mut fmt::Formatter<'_>) -> fmt::Result {
- f.debug_struct("impl Service").finish()
- }
-}
-
-impl<F, R> Clone for ServiceFn<F, R>
-where
- F: Clone,
-{
- fn clone(&self) -> Self {
- ServiceFn {
- f: self.f.clone(),
- _req: PhantomData,
- }
- }
-}
-
-impl<F, R> Copy for ServiceFn<F, R> where F: Copy {}