data_for_seo/entity/serp/element/
mod.rs1mod about_this_result_element;
2mod ads_advertiser;
3mod ads_domain;
4mod ads_multi_account_advertiser;
5mod ads_search;
6mod advertiser;
7mod ai_overview;
8mod ai_overview_element;
9mod ai_overview_reference;
10mod answer_box;
11mod carousel;
12mod carousel_element;
13mod compare_sites;
14mod compare_sites_element;
15mod discussions_and_forums;
16mod discussions_and_forums_element;
17mod faq_box;
18mod faq_box_element;
19mod featured_snippet;
20mod hotels_pack;
21mod hotels_pack_element;
22mod images_element;
23mod knowledge_graph;
24mod knowledge_graph_ai_overview_item;
25mod knowledge_graph_images_element;
26mod knowledge_graph_images_item;
27mod link_element;
28mod local_pack;
29mod map_search;
30mod multi_carousel;
31mod multi_carousel_element;
32mod multi_carousel_snippet;
33mod organic;
34mod paid;
35mod people_also_ask;
36mod people_also_ask_element;
37mod people_also_ask_extended_element;
38mod people_also_search;
39mod refinement_chips;
40mod refinement_chips_element;
41mod refinement_chips_option;
42mod related_result;
43mod related_searches;
44
45pub use about_this_result_element::*;
46pub use ads_advertiser::*;
47pub use answer_box::*;
48pub use ads_domain::*;
50pub use ads_multi_account_advertiser::*;
51pub use ads_search::*;
52pub use advertiser::*;
53pub use ai_overview::*;
54pub use ai_overview_element::*;
55pub use ai_overview_reference::*;
56pub use carousel::*;
57pub use carousel_element::*;
58pub use compare_sites::*;
59pub use compare_sites_element::*;
60pub use discussions_and_forums::*;
61pub use discussions_and_forums_element::*;
62pub use faq_box::*;
63pub use faq_box_element::*;
64pub use featured_snippet::*;
65pub use hotels_pack::*;
66pub use images_element::*;
67pub use knowledge_graph::*;
68pub use knowledge_graph_ai_overview_item::*;
69pub use knowledge_graph_images_element::*;
70pub use knowledge_graph_images_item::*;
71pub use link_element::*;
72pub use local_pack::*;
73pub use map_search::*;
74pub use multi_carousel::*;
75pub use multi_carousel_element::*;
76pub use multi_carousel_snippet::*;
77pub use organic::*;
78pub use paid::*;
79pub use people_also_ask::*;
80pub use people_also_ask_element::*;
81pub use people_also_ask_extended_element::*;
82pub use people_also_search::*;
83pub use refinement_chips::*;
84pub use refinement_chips_element::*;
85pub use refinement_chips_option::*;
86pub use related_result::*;
87pub use related_searches::*;
88
89use crate::entity::{SerpApiElementTopStoriesElement, SerpApiRectangle};
90use serde::{Deserialize, Serialize};
91
92#[derive(Debug, Serialize, Deserialize, Clone)]
94pub struct SerpApiElementGoogleNewsSearch {
95 #[serde(rename = "type")]
97 pub type_of_element: Option<String>,
98 pub rank_group: Option<i64>,
100 pub rank_absolute: Option<i64>,
102 pub xpath: Option<String>,
104 pub domain: Option<String>,
106 pub title: Option<String>,
108 pub url: Option<String>,
110 pub image_url: Option<String>,
112 pub snippet: Option<String>,
114 pub time_published: Option<String>,
116 pub timestamp: Option<String>,
118 pub rectangle: Option<SerpApiRectangle>,
120}
121#[derive(Debug, Serialize, Deserialize, Clone)]
123pub struct SerpApiGoogleOrganicItemTopStories {
124 pub rank_group: Option<i64>,
126 pub rank_absolute: Option<i64>,
128 pub position: Option<String>,
130 pub xpath: Option<String>,
132 pub title: Option<String>,
134 pub items: Option<SerpApiElementTopStoriesElement>,
136 pub rectangle: Option<SerpApiRectangle>,
138}
139#[derive(Debug, Serialize, Deserialize, Clone)]
141pub struct SerpApiElementEventItem {
142 #[serde(rename = "type")]
144 pub type_of_element: Option<String>,
145 pub rank_group: Option<i64>,
147 pub rank_absolute: Option<i64>,
149 pub position: Option<String>,
151 pub xpath: Option<String>,
153 pub title: Option<String>,
155 pub description: Option<String>,
157 pub url: Option<String>,
159 pub image_url: Option<String>,
161 pub event_dates: Option<Vec<SerpApiElementEventItemEventDate>>,
163 pub location_info: Option<SerpApiElementEventItemLocationInfo>,
165 pub information_and_tickets: Option<Vec<SerpApiElementInformationAndTicketsElement>>,
167}
168#[derive(Debug, Serialize, Deserialize, Clone)]
170pub struct SerpApiElementEventItemEventDate {
171 pub start_datetime: Option<String>,
173 pub end_datetime: Option<String>,
175 pub displayed_dates: Option<String>,
177}
178#[derive(Debug, Serialize, Deserialize, Clone)]
180pub struct SerpApiElementEventItemLocationInfo {
181 pub name: Option<String>,
183 pub address: Option<String>,
185 pub url: Option<String>,
187 pub cid: Option<String>,
189 pub feature_id: Option<String>,
191}
192#[derive(Debug, Serialize, Deserialize, Clone)]
194pub struct SerpApiElementInformationAndTicketsElement {
195 #[serde(rename = "type")]
197 pub address: Option<String>,
198 pub title: Option<String>,
200 pub description: Option<String>,
202 pub url: Option<String>,
204 pub domain: Option<String>,
206}
207#[derive(Debug, Serialize, Deserialize, Clone)]
209pub struct SerpApiElementGoogleJobsItem {
210 #[serde(rename = "type")]
212 pub type_of_element: Option<String>,
213 pub rank_group: Option<i64>,
215 pub rank_absolute: Option<i64>,
217 pub position: Option<String>,
219 pub xpath: Option<String>,
221 pub job_id: Option<String>,
223 pub title: Option<String>,
225 pub employer_name: Option<String>,
227 pub employer_url: Option<String>,
229 pub employer_image_url: Option<String>,
231 pub location: Option<String>,
233 pub source_name: Option<String>,
235 pub source_url: Option<String>,
237 pub salary: Option<String>,
239 pub contract_type: Option<String>,
241 pub timestamp: Option<String>,
243 pub rectangle: Option<SerpApiRectangle>,
245}
246#[derive(Debug, Serialize, Deserialize, Clone)]
248pub struct SerpApiElementAutocomplete {
249 #[serde(rename = "type")]
251 pub type_of_element: Option<String>,
252 pub rank_group: Option<i64>,
254 pub rank_absolute: Option<i64>,
256 pub relevance: Option<i64>,
258 pub suggestion: Option<String>,
260 pub suggestion_type: Option<String>,
262 pub search_query_url: Option<String>,
264 pub thumbnail_url: Option<String>,
266 pub highlighted: Option<Vec<String>>,
268}
269#[derive(Debug, Serialize, Deserialize, Clone)]
271pub struct SerpApiElementDataset {
272 #[serde(rename = "type")]
274 pub type_of_element: Option<String>,
275 pub rank_group: Option<i64>,
277 pub rank_absolute: Option<i64>,
279 pub position: Option<String>,
281 pub xpath: Option<String>,
283 pub dataset_id: Option<String>,
285 pub title: Option<String>,
287 pub image_url: Option<String>,
289 pub scholarly_citations_count: Option<i64>,
291 pub scholarly_articles_url: Option<String>,
293 pub unique_identifier: Option<String>,
295 pub related_article: Option<String>,
297 pub links: Option<Vec<SerpApiElementLinkElement>>,
299 pub dataset_providers: Option<Vec<SerpApiElementDatasetProvidersElement>>,
301 pub formats: Option<Vec<SerpApiElementFormatsElement>>,
303 pub authors: Option<Vec<SerpApiElementAuthorsElement>>,
305 pub licenses: Option<Vec<SerpApiElementLicencesElement>>,
307 pub updated_date: Option<String>,
309 pub area_covered: Option<Vec<String>>,
311 pub period_covered: Option<SerpApiElementDatasetPeriodCovered>,
313 pub dataset_description: Option<SerpApiElementDatasetDescription>,
315}
316
317#[derive(Debug, Serialize, Deserialize, Clone)]
319pub struct SerpApiElementDatasetPeriodCovered {
320 pub start_date: Option<String>,
322 pub end_date: Option<String>,
324 pub displayed_date: Option<String>,
326}
327#[derive(Debug, Serialize, Deserialize, Clone)]
329pub struct SerpApiElementDatasetDescription {
330 pub text: Option<String>,
332 pub links: Option<Vec<SerpApiElementLinkElement>>,
334}
335
336#[derive(Debug, Serialize, Deserialize, Clone)]
338pub struct SerpApiElementDatasetProvidersElement {
339 #[serde(rename = "type")]
341 pub type_of_element: Option<String>,
342 pub title: Option<String>,
344 pub url: Option<String>,
346 pub domain: Option<String>,
348}
349#[derive(Debug, Serialize, Deserialize, Clone)]
351pub struct SerpApiElementFormatsElement {
352 #[serde(rename = "type")]
354 pub type_of_element: Option<String>,
355 pub format: Option<String>,
357 pub size: Option<String>,
359}
360#[derive(Debug, Serialize, Deserialize, Clone)]
362pub struct SerpApiElementAuthorsElement {
363 #[serde(rename = "type")]
365 pub type_of_element: Option<String>,
366 pub name: Option<String>,
368 pub url: Option<String>,
370 pub domain: Option<String>,
372}
373#[derive(Debug, Serialize, Deserialize, Clone)]
375pub struct SerpApiElementLicencesElement {
376 #[serde(rename = "type")]
378 pub type_of_element: Option<String>,
379 pub title: Option<String>,
381 pub url: Option<String>,
383 pub domain: Option<String>,
385}