Skip to content

Commit 8ad7de7

Browse files
committed
Drop trait FromStr
1 parent d72967a commit 8ad7de7

File tree

6 files changed

+36
-20
lines changed

6 files changed

+36
-20
lines changed

README.md

Lines changed: 13 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,8 +1,6 @@
11
# http_message
22

33
```rust
4-
use std::str::FromStr;
5-
64
use http_message::PartialHttpRequest;
75

86
fn main() {
@@ -19,6 +17,19 @@ fn main() {
1917

2018
assert_eq!(Some(&(24..34)), partial.header_span("x-key"));
2119
assert_eq!(Some("x-key: 123"), partial.header_str("x-key"));
20+
21+
let request: HttpRequest = partial.into();
22+
23+
assert_eq!(
24+
HttpRequest {
25+
uri: Uri::new("https://example.com"),
26+
method: "GET".into(),
27+
http_version: "HTTP/1.1".into(),
28+
headers: vec![("x-key", "123").into()],
29+
body: None
30+
},
31+
request
32+
);
2233
}
2334
```
2435

examples/main.rs

Lines changed: 17 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,7 @@
1-
use std::str::FromStr;
2-
3-
use http_message::PartialHttpRequest;
1+
use http_message::{
2+
PartialHttpRequest,
3+
models::{request::HttpRequest, uri::Uri},
4+
};
45

56
fn main() {
67
let partial = PartialHttpRequest::from_str("GET https://example.com\nx-key: 123").unwrap();
@@ -16,4 +17,17 @@ fn main() {
1617

1718
assert_eq!(Some(&(24..34)), partial.header_span("x-key"));
1819
assert_eq!(Some("x-key: 123"), partial.header_str("x-key"));
20+
21+
let request: HttpRequest = partial.into();
22+
23+
assert_eq!(
24+
HttpRequest {
25+
uri: Uri::new("https://example.com"),
26+
method: "GET".into(),
27+
http_version: "HTTP/1.1".into(),
28+
headers: vec![("x-key", "123").into()],
29+
body: None
30+
},
31+
request
32+
);
1933
}

src/main.rs

Lines changed: 0 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,3 @@
1-
use std::str::FromStr;
2-
31
fn main() {
42
use std::env;
53
use std::fs;

src/models/partial_request.rs

Lines changed: 5 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
11
use core::fmt;
2-
use std::{ops::Range, str::FromStr};
2+
use std::ops::Range;
33

44
use crate::{
55
error::Error,
@@ -26,6 +26,10 @@ impl fmt::Display for PartialHttpRequest {
2626
}
2727

2828
impl PartialHttpRequest {
29+
pub fn from_str(message: &str) -> Result<Self, Error> {
30+
parse_request(message, parse_first_line)
31+
}
32+
2933
pub fn parsed(
3034
message: &str,
3135
method: Option<Range<usize>>,
@@ -175,15 +179,6 @@ impl Default for PartialHttpRequest {
175179
}
176180
}
177181

178-
impl FromStr for PartialHttpRequest {
179-
type Err = Error;
180-
181-
/// Parse a string in to a partial request
182-
fn from_str(s: &str) -> Result<Self, Self::Err> {
183-
parse_request(s, parse_first_line)
184-
}
185-
}
186-
187182
type FirstLineParts = (
188183
Option<Range<usize>>,
189184
Option<Range<usize>>,

tests/display_tests.rs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
use std::{fs, str::FromStr};
1+
use std::fs;
22

33
use http_message::PartialHttpRequest;
44

tests/parse_tests.rs

Lines changed: 0 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,3 @@
1-
use std::str::FromStr;
2-
31
use http_message::PartialHttpRequest;
42
use http_message::models::{request::HttpRequest, uri::Uri};
53

0 commit comments

Comments
 (0)