diff options
Diffstat (limited to 'src/barbfile.rs')
-rw-r--r-- | src/barbfile.rs | 46 |
1 files changed, 25 insertions, 21 deletions
diff --git a/src/barbfile.rs b/src/barbfile.rs index 1a17796..19a24cd 100644 --- a/src/barbfile.rs +++ b/src/barbfile.rs @@ -80,16 +80,16 @@ impl Header { } } -struct BarbHeader { +struct BarbPreamble { pub method: Method, pub url: String, pub headers: Vec<Header>, pub filter: Option<String>, } -impl BarbHeader { +impl BarbPreamble { fn new(method: Method, url: String, headers: Vec<Header>, filter: Option<String>) -> Self { - BarbHeader { + BarbPreamble { method: method, url: url, headers: headers, @@ -99,25 +99,29 @@ impl BarbHeader { } pub struct BarbFile { - header: BarbHeader, + preamble: BarbPreamble, body: Option<String>, } impl BarbFile { pub fn headers(&self) -> &Vec<Header> { - &self.header.headers + &self.preamble.headers } pub fn method(&self) -> &Method { - &self.header.method + &self.preamble.method } pub fn method_as_string(&self) -> String { - self.header.method.to_string() + self.preamble.method.to_string() } pub fn url(&self) -> &String { - &self.header.url + &self.preamble.url + } + + pub fn filter(&self) -> &Option<String> { + &self.preamble.filter } pub fn body(&self) -> &Option<String> { @@ -172,7 +176,7 @@ impl FromStr for BarbFile { let body = lines.fold(String::from(""), |acc, x| acc + x); Ok(BarbFile { - header: BarbHeader::new(method, url, headers, filter), + preamble: BarbPreamble::new(method, url, headers, filter), body: if body == "" { None } else { Some(body) }, }) } @@ -214,12 +218,12 @@ mod tests { let barbfile = BarbFile::from_str("#GET^https://blah.com/api/blah\n#Authorization: BLAH\n#|filtr\n") .unwrap(); - assert!(matches!(barbfile.header.method, Method::GET)); - assert_eq!(barbfile.header.url, "https://blah.com/api/blah"); - assert_eq!(barbfile.header.filter, Some(String::from("filtr"))); - assert_eq!(barbfile.header.headers.len(), 1); - assert_eq!(barbfile.header.headers[0].name, "Authorization"); - assert_eq!(barbfile.header.headers[0].value, "BLAH"); + assert!(matches!(barbfile.preamble.method, Method::GET)); + assert_eq!(barbfile.preamble.url, "https://blah.com/api/blah"); + assert_eq!(barbfile.preamble.filter, Some(String::from("filtr"))); + assert_eq!(barbfile.preamble.headers.len(), 1); + assert_eq!(barbfile.preamble.headers[0].name, "Authorization"); + assert_eq!(barbfile.preamble.headers[0].value, "BLAH"); assert_eq!(barbfile.body, None); } @@ -228,12 +232,12 @@ mod tests { let barbfile = BarbFile::from_str("#POST^https://blah.com/api/blah\n#Authorization: BLAH\n#|filtr\n\n{\"key\":\"value\"}\n") .unwrap(); - assert!(matches!(barbfile.header.method, Method::POST)); - assert_eq!(barbfile.header.url, "https://blah.com/api/blah"); - assert_eq!(barbfile.header.filter, Some(String::from("filtr"))); - assert_eq!(barbfile.header.headers.len(), 1); - assert_eq!(barbfile.header.headers[0].name, "Authorization"); - assert_eq!(barbfile.header.headers[0].value, "BLAH"); + assert!(matches!(barbfile.preamble.method, Method::POST)); + assert_eq!(barbfile.preamble.url, "https://blah.com/api/blah"); + assert_eq!(barbfile.preamble.filter, Some(String::from("filtr"))); + assert_eq!(barbfile.preamble.headers.len(), 1); + assert_eq!(barbfile.preamble.headers[0].name, "Authorization"); + assert_eq!(barbfile.preamble.headers[0].value, "BLAH"); assert_eq!(barbfile.body, Some(String::from("{\"key\":\"value\"}"))) } } |