mod baidu;
mod bing;
mod element;
mod google;
mod languages;
mod naver;
mod seznam;
mod yahoo;
mod youtube;
pub use baidu::*;
pub use bing::*;
pub use element::*;
pub use google::*;
pub use languages::*;
pub use naver::*;
use serde::{Deserialize, Serialize};
use serde_json::Value;
pub use seznam::*;
pub use yahoo::*;
pub use youtube::*;
#[derive(Debug, Default, Serialize, Deserialize, Clone)]
pub struct SerpApiHtmlItem {
pub page: i32,
pub date: String,
pub html: String,
}
#[derive(Debug, Default, Serialize, Deserialize, Clone)]
pub struct SerpApiSearchResult<T> {
pub keyword: Option<String>,
#[serde(rename = "type")]
pub search_engine_type: Option<String>,
pub se_domain: Option<String>,
pub location_code: Option<i32>,
pub language_code: Option<String>,
pub check_url: Option<String>,
pub datetime: Option<String>,
pub spell: Option<Value>,
pub refinement_chips: Option<SerpApiElementRefinementChips>,
pub item_types: Option<Vec<String>>,
pub se_results_count: Option<i64>,
pub items_count: Option<i64>,
pub items: Option<Vec<T>>,
}
impl<T> SerpApiSearchResult<T> {
pub fn items(&self) -> &[T] {
self.items.as_deref().unwrap_or_default()
}
}
#[derive(Debug, Serialize, Deserialize, Clone)]
pub struct SerpApiRating {
pub rating_type: Option<String>,
pub value: Option<f64>,
pub votes_count: Option<i64>,
pub rating_max: Option<i64>,
}
#[derive(Debug, Serialize, Deserialize, Clone)]
pub struct SerpApiRatingDistribution {
#[serde(rename = "1")]
pub distribution1: Option<i64>,
#[serde(rename = "2")]
pub distribution2: Option<i64>,
#[serde(rename = "3")]
pub distribution3: Option<i64>,
#[serde(rename = "4")]
pub distribution4: Option<i64>,
#[serde(rename = "5")]
pub distribution5: Option<i64>,
}
#[derive(Debug, Serialize, Deserialize, Clone)]
pub struct SerpApiRectangle {
pub x: Option<f64>,
pub y: Option<f64>,
pub width: Option<f64>,
pub height: Option<f64>,
}
#[derive(Debug, Serialize, Deserialize, Clone)]
pub struct SerpApiPrice {
pub current: Option<f64>,
pub regular: Option<f64>,
pub max_value: Option<f64>,
pub currency: Option<String>,
pub is_price_range: Option<bool>,
pub displayed_price: Option<String>,
}