upnp_rs/common/httpu/
builder.rs1use crate::common::httpu::request::Request;
2use std::collections::HashMap;
3
4#[derive(Debug)]
5pub struct RequestBuilder {
6 request: Request,
7}
8
9impl RequestBuilder {
10 pub fn new(message: &str) -> Self {
11 RequestBuilder {
12 request: Request {
13 message: message.to_string(),
14 resource: None,
15 headers: Default::default(),
16 },
17 }
18 }
19
20 pub fn for_resource(&mut self, resource: &str) -> &mut Self {
21 self.request.resource = Some(resource.to_string());
22 self
23 }
24
25 pub fn for_any_resource(&mut self) -> &mut Self {
26 self.request.resource = None;
27 self
28 }
29
30 pub fn no_headers(&mut self) -> &mut Self {
31 self.request.headers = Default::default();
32 self
33 }
34
35 pub fn headers(&mut self, headers: HashMap<String, String>) -> &mut Self {
36 self.request.headers = headers;
37 self
38 }
39
40 pub fn add_header(&mut self, name: &str, value: &str) -> &mut Self {
41 self.request
42 .headers
43 .insert(name.to_string(), value.to_string());
44 self
45 }
46}
47
48impl From<RequestBuilder> for Request {
49 fn from(rb: RequestBuilder) -> Self {
50 rb.request
51 }
52}