Struct gotham::handler::NewHandlerService [] [src]

pub struct NewHandlerService<T> where
    T: NewHandler + 'static, 
{ /* fields omitted */ }

Wraps a NewHandler to provide a hyper::server::NewService implementation for Gotham handlers.

Methods

impl<T> NewHandlerService<T> where
    T: NewHandler + 'static, 
[src]

[src]

Creates a NewHandlerService for the given NewHandler.

Examples

Using a closure which is a NewHandler:

fn handler(state: State, _req: Request) -> (State, Response) {
    let res = create_response(&state, StatusCode::Accepted, None);
    (state, res)
}

NewHandlerService::new(|| Ok(handler));

Using a Router:

fn handler(state: State, _req: Request) -> (State, Response) {
    let res = create_response(&state, StatusCode::Accepted, None);
    (state, res)
}

let mut tree_builder = TreeBuilder::new();
let pipeline_set = finalize_pipeline_set(new_pipeline_set());
let finalizer = ResponseFinalizerBuilder::new().finalize();

let matcher = MethodOnlyRouteMatcher::new(vec![Method::Get]);
let dispatcher = DispatcherImpl::new(|| Ok(handler), (), pipeline_set);
let extractors: Extractors<NoopPathExtractor, NoopQueryStringExtractor> = Extractors::new();
let route = RouteImpl::new(matcher, Box::new(dispatcher), extractors, Delegation::Internal);

tree_builder.add_route(Box::new(route));
let tree = tree_builder.finalize();
let router = Router::new(tree, finalizer);

NewHandlerService::new(router);

Trait Implementations

impl<T> Clone for NewHandlerService<T> where
    T: NewHandler + 'static, 
[src]

[src]

Returns a copy of the value. Read more

1.0.0
[src]

Performs copy-assignment from source. Read more

impl<T> NewService for NewHandlerService<T> where
    T: NewHandler + 'static, 
[src]

Requests handled by the service

Responses given by the service

Errors produced by the service

The Service value created by this factory

[src]

Create and return a new service value.

impl<T> Service for NewHandlerService<T> where
    T: NewHandler
[src]

Requests handled by the service.

Responses given by the service.

Errors produced by the service.

The future response value.

[src]

Process the request and return the response asynchronously.