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