async_redis_lock/
options.rs

1use std::time::Duration;
2
3const DEFAULT_DURATION: Duration = Duration::from_millis(2000);
4const DEFAULT_RETRY_INTERVAL: Duration = Duration::from_millis(500);
5const DEFAULT_RETRY_TIMEOUT: Duration = Duration::from_millis(1000);
6const DEFAULT_EXTEND_INTERVAL: Duration = Duration::from_millis(1000);
7
8#[derive(Debug, Clone, PartialEq)]
9pub struct Options {
10    pub lifetime: Duration,
11    pub retry_interval: Duration,
12    pub retry_timeout: Option<Duration>,
13    pub extend_interval: Duration,
14}
15
16impl Default for Options {
17    fn default() -> Self {
18        Self {
19            lifetime: DEFAULT_DURATION,
20            retry_interval: DEFAULT_RETRY_INTERVAL,
21            retry_timeout: Some(DEFAULT_RETRY_TIMEOUT),
22            extend_interval: DEFAULT_EXTEND_INTERVAL,
23        }
24    }
25}
26
27impl Options {
28    pub fn new() -> Self {
29        Self::default()
30    }
31
32    pub fn lifetime(mut self, dur: Duration) -> Self {
33        self.lifetime = dur;
34        self
35    }
36
37    pub fn retry_interval(mut self, dur: Duration) -> Self {
38        self.retry_interval = dur;
39        self
40    }
41
42    pub fn retry_timeout(mut self, dur: Option<Duration>) -> Self {
43        self.retry_timeout = dur;
44        self
45    }
46
47    pub fn extend_interval(mut self, dur: Duration) -> Self {
48        self.extend_interval = dur;
49        self
50    }
51}