some_random_api/endpoints/
fact.rs

1use crate::{Fact, Requester};
2use anyhow::Result;
3
4/// An endpoint that sends a random fact of an animal
5///
6/// # Examples
7///
8/// ```
9/// use some_random_api::Client;
10///
11/// Client::new(None::<String>).fact.bird().await?;
12/// ```
13pub struct FactEndpoint(pub(crate) Requester);
14
15impl FactEndpoint {
16    /// An endpoint that sends a random bird fact
17    pub async fn bird(&self) -> Result<Fact> {
18        self.0.request("facts/bird", None::<&()>).await
19    }
20
21    /// An endpoint that sends a random cat fact
22    pub async fn cat(&self) -> Result<Fact> {
23        self.0.request("facts/cat", None::<&()>).await
24    }
25
26    /// An endpoint that sends a random dog fact
27    pub async fn dog(&self) -> Result<Fact> {
28        self.0.request("facts/dog", None::<&()>).await
29    }
30
31    /// An endpoint that sends a random fox fact
32    pub async fn fox(&self) -> Result<Fact> {
33        self.0.request("facts/fox", None::<&()>).await
34    }
35
36    /// An endpoint that sends a random koala fact
37    pub async fn koala(&self) -> Result<Fact> {
38        self.0.request("facts/koala", None::<&()>).await
39    }
40
41    /// An endpoint that sends a random panda fact
42    pub async fn panda(&self) -> Result<Fact> {
43        self.0.request("facts/panda", None::<&()>).await
44    }
45}