pub struct ResponseBuilder<'a> {
    pub path: &'a str,
    pub query: Option<&'a str>,
    pub file_response_builder: FileResponseBuilder,
}
Expand description

Utility to build the default response for a resolve result.

This struct allows direct access to its fields, but these fields are typically initialized by the accessors, using the builder pattern. The fields are basically a bunch of settings that determine the response details.

Fields§

§path: &'a str

The request path.

§query: Option<&'a str>

The request query string.

§file_response_builder: FileResponseBuilder

Inner file response builder.

Implementations§

Create a new builder with a default configuration.

Examples found in repository?
src/service.rs (line 57)
51
52
53
54
55
56
57
58
59
60
61
62
63
    pub async fn serve<B>(self, request: Request<B>) -> Result<Response<Body>, IoError> {
        let Self {
            root,
            cache_headers,
        } = self;
        resolve(root, &request).await.map(|result| {
            ResponseBuilder::new()
                .request(&request)
                .cache_headers(cache_headers)
                .build(result)
                .expect("unable to build response")
        })
    }

Apply parameters based on a request.

Examples found in repository?
src/service.rs (line 58)
51
52
53
54
55
56
57
58
59
60
61
62
63
    pub async fn serve<B>(self, request: Request<B>) -> Result<Response<Body>, IoError> {
        let Self {
            root,
            cache_headers,
        } = self;
        resolve(root, &request).await.map(|result| {
            ResponseBuilder::new()
                .request(&request)
                .cache_headers(cache_headers)
                .build(result)
                .expect("unable to build response")
        })
    }

Apply parameters based on request parts.

Examples found in repository?
src/response_builder.rs (line 30)
29
30
31
32
    pub fn request<B>(&mut self, req: &'a Request<B>) -> &mut Self {
        self.request_parts(req.method(), req.uri(), req.headers());
        self
    }

Apply parameters based on a request URI.

Examples found in repository?
src/response_builder.rs (line 41)
35
36
37
38
39
40
41
42
43
44
    pub fn request_parts(
        &mut self,
        method: &Method,
        uri: &'a Uri,
        headers: &'a HeaderMap,
    ) -> &mut Self {
        self.request_uri(uri);
        self.file_response_builder.request_parts(method, headers);
        self
    }

Add cache headers to responses for the given lifespan.

Examples found in repository?
src/service.rs (line 59)
51
52
53
54
55
56
57
58
59
60
61
62
63
    pub async fn serve<B>(self, request: Request<B>) -> Result<Response<Body>, IoError> {
        let Self {
            root,
            cache_headers,
        } = self;
        resolve(root, &request).await.map(|result| {
            ResponseBuilder::new()
                .request(&request)
                .cache_headers(cache_headers)
                .build(result)
                .expect("unable to build response")
        })
    }

Set the request path.

Examples found in repository?
src/response_builder.rs (line 48)
47
48
49
50
51
    pub fn request_uri(&mut self, uri: &'a Uri) -> &mut Self {
        self.path(uri.path());
        self.query(uri.query());
        self
    }

Set the request query string.

Examples found in repository?
src/response_builder.rs (line 49)
47
48
49
50
51
    pub fn request_uri(&mut self, uri: &'a Uri) -> &mut Self {
        self.path(uri.path());
        self.query(uri.query());
        self
    }

Build a response for the given request and resolve result.

This function may error if it response could not be constructed, but this should be a seldom occurrence.

Examples found in repository?
src/service.rs (line 60)
51
52
53
54
55
56
57
58
59
60
61
62
63
    pub async fn serve<B>(self, request: Request<B>) -> Result<Response<Body>, IoError> {
        let Self {
            root,
            cache_headers,
        } = self;
        resolve(root, &request).await.map(|result| {
            ResponseBuilder::new()
                .request(&request)
                .cache_headers(cache_headers)
                .build(result)
                .expect("unable to build response")
        })
    }

Trait Implementations§

Returns a copy of the value. Read more
Performs copy-assignment from source. Read more
Formats the value using the given formatter. Read more
Returns the “default value” for a type. Read more

Auto Trait Implementations§

Blanket Implementations§

Gets the TypeId of self. Read more
Immutably borrows from an owned value. Read more
Mutably borrows from an owned value. Read more

Returns the argument unchanged.

Instruments this type with the provided Span, returning an Instrumented wrapper. Read more
Instruments this type with the current Span, returning an Instrumented wrapper. Read more

Calls U::from(self).

That is, this conversion is whatever the implementation of From<T> for U chooses to do.

The resulting type after obtaining ownership.
Creates owned data from borrowed data, usually by cloning. Read more
Uses borrowed data to replace owned data, usually by cloning. Read more
The type returned in the event of a conversion error.
Performs the conversion.
The type returned in the event of a conversion error.
Performs the conversion.
Attaches the provided Subscriber to this type, returning a WithDispatch wrapper. Read more
Attaches the current default Subscriber to this type, returning a WithDispatch wrapper. Read more