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