Struct conduit_hyper::Service
source · [−]pub struct Service;
Expand description
A builder for a hyper::Service
.
Implementations
sourceimpl 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 RefUnwindSafe for Service
impl Send for Service
impl Sync for Service
impl Unpin for Service
impl UnwindSafe for Service
Blanket Implementations
sourceimpl<T> BorrowMut<T> for Twhere
T: ?Sized,
impl<T> BorrowMut<T> for Twhere
T: ?Sized,
const: unstable · sourcefn borrow_mut(&mut self) -> &mut T
fn borrow_mut(&mut self) -> &mut T
Mutably borrows from an owned value. Read more