[][src]Struct conduit_hyper::Service

pub struct Service;

A builder for a hyper::Service.

Methods

impl Service[src]

pub fn from_conduit<H: Handler>(
    handler: Arc<H>,
    remote_addr: SocketAddr
) -> Result<impl Service<Request<Body>, Response = Response<Body>, Error = Error, Future = impl Future<Output = Result<Response<Body>, Error>> + Send + 'static>, Error>
[src]

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(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_conduit(handler, addr) }
    });

let addr = ([127, 0, 0, 1], port).into();
let server = hyper::Server::bind(&addr).serve(make_service);

Trait Implementations

impl Debug for Service[src]

Auto Trait Implementations

impl Send for Service

impl Sync for Service

impl Unpin for Service

impl UnwindSafe for Service

impl RefUnwindSafe for Service

Blanket Implementations

impl<T, U> Into<U> for T where
    U: From<T>, 
[src]

impl<T> From<T> for T[src]

impl<T, U> TryFrom<U> for T where
    U: Into<T>, 
[src]

type Error = Infallible

The type returned in the event of a conversion error.

impl<T, U> TryInto<U> for T where
    U: TryFrom<T>, 
[src]

type Error = <U as TryFrom<T>>::Error

The type returned in the event of a conversion error.

impl<T> Borrow<T> for T where
    T: ?Sized
[src]

impl<T> BorrowMut<T> for T where
    T: ?Sized
[src]

impl<T> Any for T where
    T: 'static + ?Sized
[src]