Now from_html method accept &str and String
parent
4b7bd8e221
commit
570a5d485d
|
@ -20,13 +20,10 @@ pub struct Request {
|
||||||
|
|
||||||
impl RequestBase for Request {
|
impl RequestBase for Request {
|
||||||
fn new<T: IntoUrl>(url: T) -> Result<Request, ParseError> {
|
fn new<T: IntoUrl>(url: T) -> Result<Request, ParseError> {
|
||||||
match url.into_url() {
|
url.into_url().map(|url_parsed| Request {
|
||||||
Ok(url_parsed) => Ok(Request {
|
url: url_parsed,
|
||||||
url: url_parsed,
|
method: Method::GET,
|
||||||
method: Method::GET,
|
})
|
||||||
}),
|
|
||||||
Err(error) => Err(error),
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
||||||
fn launch(self) -> response::Response {
|
fn launch(self) -> response::Response {
|
||||||
|
|
|
@ -13,7 +13,7 @@ pub struct Response {
|
||||||
}
|
}
|
||||||
|
|
||||||
impl SelectorBase for Response {
|
impl SelectorBase for Response {
|
||||||
fn from_html(_: String) -> Self {
|
fn from_html<S: AsRef<str>>(_: S) -> Self {
|
||||||
unimplemented!()
|
unimplemented!()
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -1,5 +1,5 @@
|
||||||
pub trait SelectorBase {
|
pub trait SelectorBase {
|
||||||
fn from_html(html: String) -> Self;
|
fn from_html<S: AsRef<str>>(html: S) -> Self;
|
||||||
|
|
||||||
fn html(&self) -> String;
|
fn html(&self) -> String;
|
||||||
|
|
||||||
|
@ -58,9 +58,9 @@ pub struct Selector {
|
||||||
}
|
}
|
||||||
|
|
||||||
impl SelectorBase for Selector {
|
impl SelectorBase for Selector {
|
||||||
fn from_html(html: String) -> Self {
|
fn from_html<S: AsRef<str>>(html: S) -> Self {
|
||||||
Selector {
|
Selector {
|
||||||
text: html.to_string(),
|
text: html.as_ref().to_string(),
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -15,8 +15,7 @@ fn plain_text_selector() {
|
||||||
<a>simple text</a>
|
<a>simple text</a>
|
||||||
</body>
|
</body>
|
||||||
</html>
|
</html>
|
||||||
"
|
";
|
||||||
.to_string();
|
|
||||||
let sel = Selector::from_html(html);
|
let sel = Selector::from_html(html);
|
||||||
assert_eq!(sel.css("h1")[0].html(), "<h1>hello world</h1>");
|
assert_eq!(sel.css("h1")[0].html(), "<h1>hello world</h1>");
|
||||||
assert_eq!(sel.css("#text")[0].content(), "good bye");
|
assert_eq!(sel.css("#text")[0].content(), "good bye");
|
||||||
|
@ -50,8 +49,7 @@ fn complex_selectors() {
|
||||||
</div>
|
</div>
|
||||||
</body>
|
</body>
|
||||||
</html>
|
</html>
|
||||||
"
|
";
|
||||||
.to_string();
|
|
||||||
let sel = Selector::from_html(html);
|
let sel = Selector::from_html(html);
|
||||||
assert_eq!(sel.css_once("p").unwrap().attr("id").unwrap(), "text");
|
assert_eq!(sel.css_once("p").unwrap().attr("id").unwrap(), "text");
|
||||||
assert_eq!(sel.css("a")[0].attr("href").unwrap(), "http://google.com");
|
assert_eq!(sel.css("a")[0].attr("href").unwrap(), "http://google.com");
|
||||||
|
@ -86,8 +84,7 @@ fn xpath_test() {
|
||||||
</div>
|
</div>
|
||||||
</body>
|
</body>
|
||||||
</html>
|
</html>
|
||||||
"
|
";
|
||||||
.to_string();
|
|
||||||
let sel = Selector::from_html(html);
|
let sel = Selector::from_html(html);
|
||||||
assert_eq!(
|
assert_eq!(
|
||||||
sel.xpath_once("//div/a[1]").unwrap().content(),
|
sel.xpath_once("//div/a[1]").unwrap().content(),
|
||||||
|
|
Loading…
Reference in New Issue