zotero_api_rs/client/
config.rs1use std::time::Duration;
4
5#[derive(Clone, Copy, Debug)]
7pub struct RetryPolicy {
8 pub max_attempts: u32,
10 pub base_delay: Duration,
12 pub max_delay: Duration,
14}
15
16impl Default for RetryPolicy {
17 fn default() -> Self {
18 Self {
19 max_attempts: 3,
20 base_delay: Duration::from_millis(200),
21 max_delay: Duration::from_secs(5),
22 }
23 }
24}
25
26#[derive(Clone, Debug)]
28pub struct ClientOptions {
29 pub base_url: String,
31 pub auth: Option<crate::client::Auth>,
33 pub timeout: Duration,
35 pub connect_timeout: Duration,
37 pub user_agent: String,
39 pub retry_policy: RetryPolicy,
41}
42
43impl Default for ClientOptions {
44 fn default() -> Self {
45 Self {
46 base_url: "https://api.zotero.org/".to_owned(),
47 auth: None,
48 timeout: Duration::from_secs(30),
49 connect_timeout: Duration::from_secs(10),
50 user_agent: format!("zotero-rs/{}", env!("CARGO_PKG_VERSION")),
51 retry_policy: RetryPolicy::default(),
52 }
53 }
54}