pub struct Service;
Expand description
A builder for a hyper::Service
.
Implementations§
Source§impl Service
impl Service
Sourcepub fn from_blocking<H: Handler>(
handler: Arc<BlockingHandler<H>>,
remote_addr: SocketAddr,
) -> Result<impl Service<Request<Body>, Response = Response<Body>, Error = ServiceError, Future = impl Future<Output = Result<Response<Body>, ServiceError>> + Send + 'static>, ServiceError>
pub fn from_blocking<H: Handler>( handler: Arc<BlockingHandler<H>>, remote_addr: SocketAddr, ) -> Result<impl Service<Request<Body>, Response = Response<Body>, Error = ServiceError, Future = impl Future<Output = Result<Response<Body>, ServiceError>> + Send + 'static>, ServiceError>
Turn a conduit handler into a Service
which can be bound to a hyper::Server
.
The returned service can be built into a hyper::Server
using make_service_fn
and
capturing the socket remote_addr
.
let handler = Arc::new(BlockingHandler::new(app));
let make_service =
hyper::service::make_service_fn(move |socket: &hyper::server::conn::AddrStream| {
let addr = socket.remote_addr();
let handler = handler.clone();
async move { Service::from_blocking(handler, addr) }
});
let addr = ([127, 0, 0, 1], port).into();
let server = hyper::Server::bind(&addr).serve(make_service);
Trait Implementations§
Auto Trait Implementations§
impl Freeze for Service
impl RefUnwindSafe for Service
impl Send for Service
impl Sync for Service
impl Unpin for Service
impl UnwindSafe for Service
Blanket Implementations§
Source§impl<T> BorrowMut<T> for Twhere
T: ?Sized,
impl<T> BorrowMut<T> for Twhere
T: ?Sized,
Source§fn borrow_mut(&mut self) -> &mut T
fn borrow_mut(&mut self) -> &mut T
Mutably borrows from an owned value. Read more