vtcode_core/gemini/client/
retry.rs1use std::time::Duration;
2
3#[derive(Debug, Clone)]
5pub struct RetryConfig {
6 pub max_attempts: u32,
7 pub initial_delay: Duration,
8 pub max_delay: Duration,
9 pub backoff_multiplier: f64,
10 pub retryable_errors: Vec<String>,
11}
12
13impl Default for RetryConfig {
14 fn default() -> Self {
15 Self {
16 max_attempts: 3,
17 initial_delay: Duration::from_millis(500),
18 max_delay: Duration::from_secs(30),
19 backoff_multiplier: 2.0,
20 retryable_errors: vec![
21 "timeout".to_string(),
22 "connection".to_string(),
23 "rate_limit".to_string(),
24 "server_error".to_string(),
25 "network".to_string(),
26 ],
27 }
28 }
29}