tower_web/response/
serializer_context.rs

1use http;
2
3/// Context passed to `Serializer::serialize`
4///
5/// `SerializerContext` contains context obtained when deriving `Response`.
6#[derive(Debug)]
7pub struct SerializerContext<'a> {
8    request: &'a http::Request<()>,
9    resource_mod: Option<&'a str>,
10    resource_name: Option<&'a str>,
11    handler_name: Option<&'a str>,
12    template: Option<&'a str>,
13}
14
15impl<'a> SerializerContext<'a> {
16    pub(crate) fn new(request: &'a http::Request<()>) -> SerializerContext<'a> {
17        SerializerContext {
18            request,
19            resource_mod: None,
20            resource_name: None,
21            handler_name: None,
22            template: None,
23        }
24    }
25
26    /// Returns a reference to the original request
27    pub fn request(&self) -> &http::Request<()> {
28        self.request
29    }
30
31    /// Returns the module in which the `impl_web!` was used to implement the resource.
32    pub fn resource_mod(&self) -> Option<&str> {
33        self.resource_mod
34    }
35
36    pub(crate) fn set_resource_mod(&mut self, value: Option<&'a str>) {
37        self.resource_mod = value;
38    }
39
40    /// Returns the name of the resource handling the request.
41    pub fn resource_name(&self) -> Option<&str> {
42        self.resource_name
43    }
44
45    pub(crate) fn set_resource_name(&mut self, value: Option<&'a str>) {
46        self.resource_name = value;
47    }
48
49    /// Returns the name of the function handling the request.
50    pub fn handler_name(&self) -> Option<&str> {
51        self.handler_name
52    }
53
54    pub(crate) fn set_handler_name(&mut self, value: Option<&'a str>) {
55        self.handler_name = value;
56    }
57
58    /// Returns the `template` value set for the response.
59    pub fn template(&self) -> Option<&str> {
60        self.template
61    }
62
63    #[doc(hidden)]
64    pub fn set_template(&mut self, value: &'a str) {
65        self.template = Some(value);
66    }
67}