async_redis_lock/
options.rs

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