1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
#![deny(missing_docs)]
mod apiclient;
pub use apiclient::{ApiClient, ApiConfig};
mod error;
pub use error::Error;
mod errorcode;
pub use errorcode::lookup_error;
mod item;
mod list;
pub mod types;
mod user;
pub(crate) use user::UserCache;
pub(crate) mod datetime;
mod util;
pub(crate) use util::{f32_or_str, join};
use once_cell::sync::OnceCell;
static API: OnceCell<ApiClient> = OnceCell::new();
pub fn init_api(config: ApiConfig) -> Result<&'static ApiClient, Error> {
let api = ApiClient::new(config)?;
API.set(api).map_err(|_| Error::AlreadyInitialized)?;
get_api()
}
pub fn get_api() -> Result<&'static ApiClient, Error> {
API.get().ok_or(Error::NotInitialized)
}
pub mod prelude {
pub use crate::types::{DateTime, Utc, ZKObjectID};
}