Skip to content

Commit 55bb7c0

Browse files
committed
refactor uri
1 parent 0777230 commit 55bb7c0

File tree

3 files changed

+29
-38
lines changed

3 files changed

+29
-38
lines changed

src/error.rs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -21,9 +21,9 @@ impl error::Error for ParseErr {
2121
match self {
2222
Utf8(e) => Some(e),
2323
Int(e) => Some(e),
24+
StatusErr | HeadersErr | UriErr | Invalid | Empty => None,
2425
#[cfg(feature = "rust-tls")]
2526
Rustls(e) => Some(e),
26-
StatusErr | HeadersErr | UriErr | Invalid | Empty => None,
2727
}
2828
}
2929
}

src/lib.rs

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -7,8 +7,9 @@
77
//!use http_req::request;
88
//!
99
//!fn main() {
10-
//! let mut writer = Vec::new(); //container for body of a response
11-
//! let res = request::get("https://doc.rust-lang.org/", &mut writer).unwrap();
10+
//! //Container for body of a response
11+
//! let mut body = Vec::new();
12+
//! let res = request::get("https://doc.rust-lang.org/", &mut body).unwrap();
1213
//!
1314
//! println!("Status: {} {}", res.status_code(), res.reason());
1415
//!}

src/uri.rs

Lines changed: 25 additions & 35 deletions
Original file line numberDiff line numberDiff line change
@@ -238,16 +238,14 @@ impl<'a> Uri<'a> {
238238

239239
impl<'a> fmt::Display for Uri<'a> {
240240
fn fmt(&self, f: &mut fmt::Formatter) -> fmt::Result {
241-
let uri = if let Some(auth) = &self.authority {
242-
let mut uri = self.inner.to_string();
241+
let mut uri = self.inner.to_string();
242+
243+
if let Some(auth) = &self.authority {
243244
let auth = auth.to_string();
244245
let start = self.scheme.end + 3;
245246

246247
uri.replace_range(start..(start + auth.len()), &auth);
247-
uri
248-
} else {
249-
self.inner.to_string()
250-
};
248+
}
251249

252250
write!(f, "{}", uri)
253251
}
@@ -402,8 +400,7 @@ impl<'a> TryFrom<&'a str> for Authority<'a> {
402400
type Error = ParseErr;
403401

404402
fn try_from(s: &'a str) -> Result<Self, Self::Error> {
405-
let mut username = None;
406-
let mut password = None;
403+
let (mut username, mut password) = (None, None);
407404

408405
let uri_part = if s.contains('@') {
409406
let (info, part) = get_chunks(&s, Some(RangeC::new(0, s.len())), "@");
@@ -440,17 +437,14 @@ impl<'a> TryFrom<&'a str> for Authority<'a> {
440437

441438
impl<'a> fmt::Display for Authority<'a> {
442439
fn fmt(&self, f: &mut fmt::Formatter) -> fmt::Result {
443-
let auth = if let Some(pass) = self.password {
444-
let range = Range::from(pass);
440+
let mut auth = self.inner.to_string();
445441

442+
if let Some(pass) = self.password {
443+
let range = Range::from(pass);
446444
let hidden_pass = "*".repeat(range.len());
447-
let mut auth = self.inner.to_string();
448-
auth.replace_range(range, &hidden_pass);
449445

450-
auth
451-
} else {
452-
self.inner.to_string()
453-
};
446+
auth.replace_range(range, &hidden_pass);
447+
}
454448

455449
write!(f, "{}", auth)
456450
}
@@ -469,28 +463,24 @@ fn get_chunks<'a>(
469463
range: Option<RangeC>,
470464
separator: &'a str,
471465
) -> (Option<RangeC>, Option<RangeC>) {
472-
if let Some(r) = range {
473-
let range = Range::from(r);
466+
let (mut before, mut after) = (None, None);
474467

475-
match s[range.clone()].find(separator) {
468+
if let Some(range) = range {
469+
match s[range].find(separator) {
476470
Some(i) => {
477-
let mid = r.start + i + separator.len();
478-
let before = Some(RangeC::new(r.start, mid - 1)).filter(|r| r.start != r.end);
479-
let after = Some(RangeC::new(mid, r.end)).filter(|r| r.start != r.end);
480-
481-
(before, after)
471+
let mid = range.start + i + separator.len();
472+
before = Some(RangeC::new(range.start, mid - 1)).filter(|r| r.start != r.end);
473+
after = Some(RangeC::new(mid, range.end)).filter(|r| r.start != r.end);
482474
}
483475
None => {
484476
if !s[range].is_empty() {
485-
(Some(r), None)
486-
} else {
487-
(None, None)
477+
before = Some(range);
488478
}
489479
}
490480
}
491-
} else {
492-
(None, None)
493481
}
482+
483+
(before, after)
494484
}
495485

496486
#[cfg(test)]
@@ -718,13 +708,13 @@ mod tests {
718708
.collect();
719709

720710
const RESULT: [&str; 7] = [
721-
"/bar/baz?query#fragment",
722-
"/C:/Users/User/Pictures/screenshot.png",
711+
"/bar/baz?query#fragment",
712+
"/C:/Users/User/Pictures/screenshot.png",
723713
"/wiki/Hypertext_Transfer_Protocol",
724-
725-
"/",
726-
"/?query=val",
727-
"/#fragment"
714+
715+
"/",
716+
"/?query=val",
717+
"/#fragment",
728718
];
729719

730720
for i in 0..RESULT.len() {

0 commit comments

Comments
 (0)