pub struct Article { /* private fields */ }
Implementations§
Source§impl Article
impl Article
Sourcepub fn get_source(&self) -> &Source
pub fn get_source(&self) -> &Source
Examples found in repository?
examples/top_headlines.rs (line 71)
50async fn main() {
51 dotenvy::dotenv().ok();
52
53 // Provide your API key here or set it in the environment variable NEWS_API_KEY
54 // let client = NewsApiClient::new("api_key");
55 let client = NewsApiClient::from_env();
56
57 let request = GetTopHeadlinesRequest::builder()
58 .country(Country::US)
59 .category(NewsCategory::Technology)
60 .page_size(5)
61 .build()
62 .unwrap();
63
64 match client.get_top_headlines(&request).await {
65 Ok(response) => {
66 println!("Total Results: {}", response.get_total_results());
67 println!("Articles retrieved: {}", response.get_articles().len());
68
69 for (i, article) in response.get_articles().iter().enumerate() {
70 println!("Article #{}: {}", i + 1, article.get_title());
71 println!(" Source: {}", article.get_source().get_name());
72 println!(" URL: {}", article.get_url());
73 println!();
74 }
75 }
76 Err(err) => {
77 eprintln!(
78 "Error: {}",
79 match err {
80 ApiClientError::InvalidResponse(response) => response.message.clone(),
81 _ => err.to_string(),
82 }
83 );
84 }
85 }
86}
More examples
examples/everything_search.rs (line 75)
53async fn main() {
54 dotenvy::dotenv().ok();
55
56 // Provide your API key here or set it in the environment variable NEWS_API_KEY
57 // let client = NewsApiClient::new("api_key");
58 let client = NewsApiClient::from_env();
59
60 let everything_request = GetEverythingRequest::builder()
61 .search_term(String::from("Nvidia+NVDA+stock"))
62 .language(Language::EN)
63 .start_date(Utc::now() - chrono::Duration::days(30))
64 .end_date(Utc::now())
65 .page_size(1)
66 .build();
67
68 match client.get_everything(&everything_request).await {
69 Ok(response) => {
70 println!("Total Results: {}", response.get_total_results());
71 println!("Articles retrieved: {}", response.get_articles().len());
72
73 for (i, article) in response.get_articles().iter().enumerate() {
74 println!("Article #{}: {}", i + 1, article.get_title());
75 println!(" Source: {}", article.get_source().get_name());
76 println!(" Published: {}", article.get_published_at());
77 println!(" URL: {}", article.get_url());
78 println!();
79 }
80 }
81 Err(err) => {
82 eprintln!(
83 "Error: {}",
84 match err {
85 ApiClientError::InvalidResponse(response) => response.message.clone(),
86 _ => err.to_string(),
87 }
88 );
89 }
90 }
91}
Sourcepub fn get_title(&self) -> &String
pub fn get_title(&self) -> &String
Examples found in repository?
examples/top_headlines.rs (line 70)
50async fn main() {
51 dotenvy::dotenv().ok();
52
53 // Provide your API key here or set it in the environment variable NEWS_API_KEY
54 // let client = NewsApiClient::new("api_key");
55 let client = NewsApiClient::from_env();
56
57 let request = GetTopHeadlinesRequest::builder()
58 .country(Country::US)
59 .category(NewsCategory::Technology)
60 .page_size(5)
61 .build()
62 .unwrap();
63
64 match client.get_top_headlines(&request).await {
65 Ok(response) => {
66 println!("Total Results: {}", response.get_total_results());
67 println!("Articles retrieved: {}", response.get_articles().len());
68
69 for (i, article) in response.get_articles().iter().enumerate() {
70 println!("Article #{}: {}", i + 1, article.get_title());
71 println!(" Source: {}", article.get_source().get_name());
72 println!(" URL: {}", article.get_url());
73 println!();
74 }
75 }
76 Err(err) => {
77 eprintln!(
78 "Error: {}",
79 match err {
80 ApiClientError::InvalidResponse(response) => response.message.clone(),
81 _ => err.to_string(),
82 }
83 );
84 }
85 }
86}
More examples
examples/everything_search.rs (line 74)
53async fn main() {
54 dotenvy::dotenv().ok();
55
56 // Provide your API key here or set it in the environment variable NEWS_API_KEY
57 // let client = NewsApiClient::new("api_key");
58 let client = NewsApiClient::from_env();
59
60 let everything_request = GetEverythingRequest::builder()
61 .search_term(String::from("Nvidia+NVDA+stock"))
62 .language(Language::EN)
63 .start_date(Utc::now() - chrono::Duration::days(30))
64 .end_date(Utc::now())
65 .page_size(1)
66 .build();
67
68 match client.get_everything(&everything_request).await {
69 Ok(response) => {
70 println!("Total Results: {}", response.get_total_results());
71 println!("Articles retrieved: {}", response.get_articles().len());
72
73 for (i, article) in response.get_articles().iter().enumerate() {
74 println!("Article #{}: {}", i + 1, article.get_title());
75 println!(" Source: {}", article.get_source().get_name());
76 println!(" Published: {}", article.get_published_at());
77 println!(" URL: {}", article.get_url());
78 println!();
79 }
80 }
81 Err(err) => {
82 eprintln!(
83 "Error: {}",
84 match err {
85 ApiClientError::InvalidResponse(response) => response.message.clone(),
86 _ => err.to_string(),
87 }
88 );
89 }
90 }
91}
examples/async_everything_search.rs (line 28)
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}
pub fn get_description(&self) -> &Option<String>
Sourcepub fn get_url(&self) -> &String
pub fn get_url(&self) -> &String
Examples found in repository?
examples/top_headlines.rs (line 72)
50async fn main() {
51 dotenvy::dotenv().ok();
52
53 // Provide your API key here or set it in the environment variable NEWS_API_KEY
54 // let client = NewsApiClient::new("api_key");
55 let client = NewsApiClient::from_env();
56
57 let request = GetTopHeadlinesRequest::builder()
58 .country(Country::US)
59 .category(NewsCategory::Technology)
60 .page_size(5)
61 .build()
62 .unwrap();
63
64 match client.get_top_headlines(&request).await {
65 Ok(response) => {
66 println!("Total Results: {}", response.get_total_results());
67 println!("Articles retrieved: {}", response.get_articles().len());
68
69 for (i, article) in response.get_articles().iter().enumerate() {
70 println!("Article #{}: {}", i + 1, article.get_title());
71 println!(" Source: {}", article.get_source().get_name());
72 println!(" URL: {}", article.get_url());
73 println!();
74 }
75 }
76 Err(err) => {
77 eprintln!(
78 "Error: {}",
79 match err {
80 ApiClientError::InvalidResponse(response) => response.message.clone(),
81 _ => err.to_string(),
82 }
83 );
84 }
85 }
86}
More examples
examples/everything_search.rs (line 77)
53async fn main() {
54 dotenvy::dotenv().ok();
55
56 // Provide your API key here or set it in the environment variable NEWS_API_KEY
57 // let client = NewsApiClient::new("api_key");
58 let client = NewsApiClient::from_env();
59
60 let everything_request = GetEverythingRequest::builder()
61 .search_term(String::from("Nvidia+NVDA+stock"))
62 .language(Language::EN)
63 .start_date(Utc::now() - chrono::Duration::days(30))
64 .end_date(Utc::now())
65 .page_size(1)
66 .build();
67
68 match client.get_everything(&everything_request).await {
69 Ok(response) => {
70 println!("Total Results: {}", response.get_total_results());
71 println!("Articles retrieved: {}", response.get_articles().len());
72
73 for (i, article) in response.get_articles().iter().enumerate() {
74 println!("Article #{}: {}", i + 1, article.get_title());
75 println!(" Source: {}", article.get_source().get_name());
76 println!(" Published: {}", article.get_published_at());
77 println!(" URL: {}", article.get_url());
78 println!();
79 }
80 }
81 Err(err) => {
82 eprintln!(
83 "Error: {}",
84 match err {
85 ApiClientError::InvalidResponse(response) => response.message.clone(),
86 _ => err.to_string(),
87 }
88 );
89 }
90 }
91}
pub fn get_url_to_image(&self) -> &Option<String>
Sourcepub fn get_published_at(&self) -> &String
pub fn get_published_at(&self) -> &String
Examples found in repository?
examples/everything_search.rs (line 76)
53async fn main() {
54 dotenvy::dotenv().ok();
55
56 // Provide your API key here or set it in the environment variable NEWS_API_KEY
57 // let client = NewsApiClient::new("api_key");
58 let client = NewsApiClient::from_env();
59
60 let everything_request = GetEverythingRequest::builder()
61 .search_term(String::from("Nvidia+NVDA+stock"))
62 .language(Language::EN)
63 .start_date(Utc::now() - chrono::Duration::days(30))
64 .end_date(Utc::now())
65 .page_size(1)
66 .build();
67
68 match client.get_everything(&everything_request).await {
69 Ok(response) => {
70 println!("Total Results: {}", response.get_total_results());
71 println!("Articles retrieved: {}", response.get_articles().len());
72
73 for (i, article) in response.get_articles().iter().enumerate() {
74 println!("Article #{}: {}", i + 1, article.get_title());
75 println!(" Source: {}", article.get_source().get_name());
76 println!(" Published: {}", article.get_published_at());
77 println!(" URL: {}", article.get_url());
78 println!();
79 }
80 }
81 Err(err) => {
82 eprintln!(
83 "Error: {}",
84 match err {
85 ApiClientError::InvalidResponse(response) => response.message.clone(),
86 _ => err.to_string(),
87 }
88 );
89 }
90 }
91}
pub fn get_content(&self) -> &Option<String>
Trait Implementations§
Source§impl<'de> Deserialize<'de> for Article
impl<'de> Deserialize<'de> for Article
Source§fn deserialize<__D>(__deserializer: __D) -> Result<Self, __D::Error>where
__D: Deserializer<'de>,
fn deserialize<__D>(__deserializer: __D) -> Result<Self, __D::Error>where
__D: Deserializer<'de>,
Deserialize this value from the given Serde deserializer. Read more
Auto Trait Implementations§
impl Freeze for Article
impl RefUnwindSafe for Article
impl Send for Article
impl Sync for Article
impl Unpin for Article
impl UnwindSafe for Article
Blanket Implementations§
Source§impl<T> BorrowMut<T> for Twhere
T: ?Sized,
impl<T> BorrowMut<T> for Twhere
T: ?Sized,
Source§fn borrow_mut(&mut self) -> &mut T
fn borrow_mut(&mut self) -> &mut T
Mutably borrows from an owned value. Read more