use crate::fetchers::response::Response as FetcherResponse;
use crate::parser::{Selector, Selectors};
pub struct SpiderResponse {
inner: FetcherResponse,
}
impl SpiderResponse {
pub fn new(inner: FetcherResponse) -> Self {
Self { inner }
}
#[must_use]
pub fn response(&self) -> &FetcherResponse {
&self.inner
}
#[must_use]
pub fn status(&self) -> u16 {
self.inner.status()
}
#[must_use]
pub fn text(&self) -> &str {
self.inner.text()
}
#[must_use]
pub fn url(&self) -> &str {
self.inner.url()
}
#[must_use]
pub fn selector(&self) -> Selector {
self.inner.selector()
}
#[must_use]
pub fn css(&self, selector: &str) -> Selectors {
self.selector().css(selector)
}
#[must_use]
pub fn css_getall(&self, query: &str) -> Vec<crate::core::text_handler::TextHandler> {
self.selector().css_getall(query)
}
#[must_use]
pub fn css_get(&self, query: &str) -> Option<crate::core::text_handler::TextHandler> {
self.selector().css_get(query)
}
pub fn json(&self) -> Result<serde_json::Value, serde_json::Error> {
self.inner.json()
}
#[must_use]
pub fn is_blocked(&self) -> bool {
self.inner.is_blocked()
}
#[must_use]
pub fn content_length(&self) -> usize {
self.inner.content_length()
}
}