async_everything_search/
async_everything_search.rs

1use newsapi_rs::client::NewsApiClient;
2use newsapi_rs::model::{GetEverythingRequest, Language};
3
4/// Run with: cargo run --example async_everything_search
5#[tokio::main]
6async fn main() {
7    dotenvy::dotenv().ok();
8
9    println!("Example 1: Using the builder pattern");
10    let builder_client = NewsApiClient::builder()
11        .build()
12        .expect("Failed to build NewsApiClient");
13
14    let request1 = GetEverythingRequest::builder()
15        .search_term(String::from("Nvidia+NVDA+stock"))
16        .language(Language::EN)
17        .page_size(1)
18        .build();
19
20    match builder_client.get_everything(&request1).await {
21        Ok(response) => {
22            println!(
23                "Builder client - Total Results: {}",
24                response.get_total_results()
25            );
26            println!("Articles retrieved: {}", response.get_articles().len());
27            if let Some(article) = response.get_articles().first() {
28                println!("First article: {}", article.get_title());
29            }
30        }
31        Err(err) => {
32            eprintln!("Builder client error: {}", err);
33        }
34    }
35
36    println!("\nExample 2: Using from_env");
37    let env_client = NewsApiClient::from_env();
38
39    let request2 = GetEverythingRequest::builder()
40        .search_term(String::from("Bitcoin+crypto"))
41        .language(Language::EN)
42        .page_size(1)
43        .build();
44
45    match env_client.get_everything(&request2).await {
46        Ok(response) => {
47            println!(
48                "Env client - Total Results: {}",
49                response.get_total_results()
50            );
51            println!("Articles retrieved: {}", response.get_articles().len());
52            if let Some(article) = response.get_articles().first() {
53                println!("First article: {}", article.get_title());
54            }
55        }
56        Err(err) => {
57            eprintln!("Env client error: {}", err);
58        }
59    }
60}