async_redis_lock/
options.rs1use 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}