mod about_this_result_element;
mod ads_advertiser;
mod ads_domain;
mod ads_multi_account_advertiser;
mod ads_search;
mod advertiser;
mod ai_overview;
mod ai_overview_element;
mod ai_overview_reference;
mod answer_box;
mod carousel;
mod carousel_element;
mod compare_sites;
mod compare_sites_element;
mod discussions_and_forums;
mod discussions_and_forums_element;
mod faq_box;
mod faq_box_element;
mod featured_snippet;
mod hotels_pack;
mod hotels_pack_element;
mod images_element;
mod knowledge_graph;
mod knowledge_graph_ai_overview_item;
mod knowledge_graph_images_element;
mod knowledge_graph_images_item;
mod link_element;
mod local_pack;
mod map_search;
mod multi_carousel;
mod multi_carousel_element;
mod multi_carousel_snippet;
mod organic;
mod paid;
mod people_also_ask;
mod people_also_ask_element;
mod people_also_ask_extended_element;
mod people_also_search;
mod refinement_chips;
mod refinement_chips_element;
mod refinement_chips_option;
mod related_result;
mod related_searches;
pub use about_this_result_element::*;
pub use ads_advertiser::*;
pub use answer_box::*;
pub use ads_domain::*;
pub use ads_multi_account_advertiser::*;
pub use ads_search::*;
pub use advertiser::*;
pub use ai_overview::*;
pub use ai_overview_element::*;
pub use ai_overview_reference::*;
pub use carousel::*;
pub use carousel_element::*;
pub use compare_sites::*;
pub use compare_sites_element::*;
pub use discussions_and_forums::*;
pub use discussions_and_forums_element::*;
pub use faq_box::*;
pub use faq_box_element::*;
pub use featured_snippet::*;
pub use hotels_pack::*;
pub use images_element::*;
pub use knowledge_graph::*;
pub use knowledge_graph_ai_overview_item::*;
pub use knowledge_graph_images_element::*;
pub use knowledge_graph_images_item::*;
pub use link_element::*;
pub use local_pack::*;
pub use map_search::*;
pub use multi_carousel::*;
pub use multi_carousel_element::*;
pub use multi_carousel_snippet::*;
pub use organic::*;
pub use paid::*;
pub use people_also_ask::*;
pub use people_also_ask_element::*;
pub use people_also_ask_extended_element::*;
pub use people_also_search::*;
pub use refinement_chips::*;
pub use refinement_chips_element::*;
pub use refinement_chips_option::*;
pub use related_result::*;
pub use related_searches::*;
use crate::entity::{SerpApiElementTopStoriesElement, SerpApiRectangle};
use serde::{Deserialize, Serialize};
#[derive(Debug, Serialize, Deserialize, Clone)]
pub struct SerpApiElementGoogleNewsSearch {
#[serde(rename = "type")]
pub type_of_element: Option<String>,
pub rank_group: Option<i64>,
pub rank_absolute: Option<i64>,
pub xpath: Option<String>,
pub domain: Option<String>,
pub title: Option<String>,
pub url: Option<String>,
pub image_url: Option<String>,
pub snippet: Option<String>,
pub time_published: Option<String>,
pub timestamp: Option<String>,
pub rectangle: Option<SerpApiRectangle>,
}
#[derive(Debug, Serialize, Deserialize, Clone)]
pub struct SerpApiGoogleOrganicItemTopStories {
pub rank_group: Option<i64>,
pub rank_absolute: Option<i64>,
pub position: Option<String>,
pub xpath: Option<String>,
pub title: Option<String>,
pub items: Option<SerpApiElementTopStoriesElement>,
pub rectangle: Option<SerpApiRectangle>,
}
#[derive(Debug, Serialize, Deserialize, Clone)]
pub struct SerpApiElementEventItem {
#[serde(rename = "type")]
pub type_of_element: Option<String>,
pub rank_group: Option<i64>,
pub rank_absolute: Option<i64>,
pub position: Option<String>,
pub xpath: Option<String>,
pub title: Option<String>,
pub description: Option<String>,
pub url: Option<String>,
pub image_url: Option<String>,
pub event_dates: Option<Vec<SerpApiElementEventItemEventDate>>,
pub location_info: Option<SerpApiElementEventItemLocationInfo>,
pub information_and_tickets: Option<Vec<SerpApiElementInformationAndTicketsElement>>,
}
#[derive(Debug, Serialize, Deserialize, Clone)]
pub struct SerpApiElementEventItemEventDate {
pub start_datetime: Option<String>,
pub end_datetime: Option<String>,
pub displayed_dates: Option<String>,
}
#[derive(Debug, Serialize, Deserialize, Clone)]
pub struct SerpApiElementEventItemLocationInfo {
pub name: Option<String>,
pub address: Option<String>,
pub url: Option<String>,
pub cid: Option<String>,
pub feature_id: Option<String>,
}
#[derive(Debug, Serialize, Deserialize, Clone)]
pub struct SerpApiElementInformationAndTicketsElement {
#[serde(rename = "type")]
pub address: Option<String>,
pub title: Option<String>,
pub description: Option<String>,
pub url: Option<String>,
pub domain: Option<String>,
}
#[derive(Debug, Serialize, Deserialize, Clone)]
pub struct SerpApiElementGoogleJobsItem {
#[serde(rename = "type")]
pub type_of_element: Option<String>,
pub rank_group: Option<i64>,
pub rank_absolute: Option<i64>,
pub position: Option<String>,
pub xpath: Option<String>,
pub job_id: Option<String>,
pub title: Option<String>,
pub employer_name: Option<String>,
pub employer_url: Option<String>,
pub employer_image_url: Option<String>,
pub location: Option<String>,
pub source_name: Option<String>,
pub source_url: Option<String>,
pub salary: Option<String>,
pub contract_type: Option<String>,
pub timestamp: Option<String>,
pub rectangle: Option<SerpApiRectangle>,
}
#[derive(Debug, Serialize, Deserialize, Clone)]
pub struct SerpApiElementAutocomplete {
#[serde(rename = "type")]
pub type_of_element: Option<String>,
pub rank_group: Option<i64>,
pub rank_absolute: Option<i64>,
pub relevance: Option<i64>,
pub suggestion: Option<String>,
pub suggestion_type: Option<String>,
pub search_query_url: Option<String>,
pub thumbnail_url: Option<String>,
pub highlighted: Option<Vec<String>>,
}
#[derive(Debug, Serialize, Deserialize, Clone)]
pub struct SerpApiElementDataset {
#[serde(rename = "type")]
pub type_of_element: Option<String>,
pub rank_group: Option<i64>,
pub rank_absolute: Option<i64>,
pub position: Option<String>,
pub xpath: Option<String>,
pub dataset_id: Option<String>,
pub title: Option<String>,
pub image_url: Option<String>,
pub scholarly_citations_count: Option<i64>,
pub scholarly_articles_url: Option<String>,
pub unique_identifier: Option<String>,
pub related_article: Option<String>,
pub links: Option<Vec<SerpApiElementLinkElement>>,
pub dataset_providers: Option<Vec<SerpApiElementDatasetProvidersElement>>,
pub formats: Option<Vec<SerpApiElementFormatsElement>>,
pub authors: Option<Vec<SerpApiElementAuthorsElement>>,
pub licenses: Option<Vec<SerpApiElementLicencesElement>>,
pub updated_date: Option<String>,
pub area_covered: Option<Vec<String>>,
pub period_covered: Option<SerpApiElementDatasetPeriodCovered>,
pub dataset_description: Option<SerpApiElementDatasetDescription>,
}
#[derive(Debug, Serialize, Deserialize, Clone)]
pub struct SerpApiElementDatasetPeriodCovered {
pub start_date: Option<String>,
pub end_date: Option<String>,
pub displayed_date: Option<String>,
}
#[derive(Debug, Serialize, Deserialize, Clone)]
pub struct SerpApiElementDatasetDescription {
pub text: Option<String>,
pub links: Option<Vec<SerpApiElementLinkElement>>,
}
#[derive(Debug, Serialize, Deserialize, Clone)]
pub struct SerpApiElementDatasetProvidersElement {
#[serde(rename = "type")]
pub type_of_element: Option<String>,
pub title: Option<String>,
pub url: Option<String>,
pub domain: Option<String>,
}
#[derive(Debug, Serialize, Deserialize, Clone)]
pub struct SerpApiElementFormatsElement {
#[serde(rename = "type")]
pub type_of_element: Option<String>,
pub format: Option<String>,
pub size: Option<String>,
}
#[derive(Debug, Serialize, Deserialize, Clone)]
pub struct SerpApiElementAuthorsElement {
#[serde(rename = "type")]
pub type_of_element: Option<String>,
pub name: Option<String>,
pub url: Option<String>,
pub domain: Option<String>,
}
#[derive(Debug, Serialize, Deserialize, Clone)]
pub struct SerpApiElementLicencesElement {
#[serde(rename = "type")]
pub type_of_element: Option<String>,
pub title: Option<String>,
pub url: Option<String>,
pub domain: Option<String>,
}