Now from_html method accept &str and String

master
kirbylife 2021-03-21 01:47:11 -06:00
parent 4b7bd8e221
commit 570a5d485d
4 changed files with 11 additions and 17 deletions

View File

@ -20,13 +20,10 @@ pub struct Request {
impl RequestBase for Request {
fn new<T: IntoUrl>(url: T) -> Result<Request, ParseError> {
match url.into_url() {
Ok(url_parsed) => Ok(Request {
url: url_parsed,
method: Method::GET,
}),
Err(error) => Err(error),
}
url.into_url().map(|url_parsed| Request {
url: url_parsed,
method: Method::GET,
})
}
fn launch(self) -> response::Response {

View File

@ -13,7 +13,7 @@ pub struct Response {
}
impl SelectorBase for Response {
fn from_html(_: String) -> Self {
fn from_html<S: AsRef<str>>(_: S) -> Self {
unimplemented!()
}

View File

@ -1,5 +1,5 @@
pub trait SelectorBase {
fn from_html(html: String) -> Self;
fn from_html<S: AsRef<str>>(html: S) -> Self;
fn html(&self) -> String;
@ -58,9 +58,9 @@ pub struct Selector {
}
impl SelectorBase for Selector {
fn from_html(html: String) -> Self {
fn from_html<S: AsRef<str>>(html: S) -> Self {
Selector {
text: html.to_string(),
text: html.as_ref().to_string(),
}
}

View File

@ -15,8 +15,7 @@ fn plain_text_selector() {
<a>simple text</a>
</body>
</html>
"
.to_string();
";
let sel = Selector::from_html(html);
assert_eq!(sel.css("h1")[0].html(), "<h1>hello world</h1>");
assert_eq!(sel.css("#text")[0].content(), "good bye");
@ -50,8 +49,7 @@ fn complex_selectors() {
</div>
</body>
</html>
"
.to_string();
";
let sel = Selector::from_html(html);
assert_eq!(sel.css_once("p").unwrap().attr("id").unwrap(), "text");
assert_eq!(sel.css("a")[0].attr("href").unwrap(), "http://google.com");
@ -86,8 +84,7 @@ fn xpath_test() {
</div>
</body>
</html>
"
.to_string();
";
let sel = Selector::from_html(html);
assert_eq!(
sel.xpath_once("//div/a[1]").unwrap().content(),