exa_async/types/
contents.rs1use serde::{Deserialize, Serialize};
4
5use super::common::{ContentsOptions, LivecrawlOption, SearchResult};
6
7#[derive(Debug, Clone, Serialize, Deserialize)]
9#[serde(rename_all = "camelCase")]
10pub struct ContentsRequest {
11 pub urls: Vec<String>,
13
14 #[serde(skip_serializing_if = "Option::is_none")]
16 pub contents: Option<ContentsOptions>,
17
18 #[serde(skip_serializing_if = "Option::is_none")]
20 pub livecrawl: Option<LivecrawlOption>,
21
22 #[serde(skip_serializing_if = "Option::is_none")]
24 pub filter_empty_results: Option<bool>,
25}
26
27impl ContentsRequest {
28 #[must_use]
30 pub const fn new(urls: Vec<String>) -> Self {
31 Self {
32 urls,
33 contents: None,
34 livecrawl: None,
35 filter_empty_results: None,
36 }
37 }
38}
39
40#[derive(Debug, Clone, Serialize, Deserialize)]
42#[serde(rename_all = "camelCase")]
43pub struct ContentsResponse {
44 pub results: Vec<SearchResult>,
46
47 #[serde(default)]
49 pub cost_dollars: Option<super::search::CostDollars>,
50}