fml/
lib.rs

1#![allow(clippy::uninlined_format_args)]
2
3/// Client type
4pub mod client;
5/// API Types
6pub mod types;
7
8pub use crate::client::Client;
9
10/// Error type
11#[derive(Debug, thiserror::Error)]
12pub enum Error {
13    /// Reqwest HTTP Error
14    #[error(transparent)]
15    Reqwest(#[from] reqwest::Error),
16
17    /// Invalid Json
18    #[error(transparent)]
19    Json(#[from] serde_json::Error),
20
21    /// Invalid Api Error
22    #[error("api error ({0})")]
23    Api(String),
24
25    /// An API response was invalid
26    #[error("invalid api response")]
27    InvalidApiResponse,
28}
29
30/// Result Type
31pub type FmlResult<T> = Result<T, Error>;
32
33#[cfg(test)]
34mod test {
35    use super::*;
36
37    const KEY: &str = include_str!("../key.txt");
38
39    #[tokio::test]
40    async fn random() {
41        let client = Client::new(KEY.into());
42        let data = client.list_random(5).await.expect("invalid list");
43        println!("{:#?}", data);
44        assert!(!data.is_empty());
45    }
46}