1use serde_derive::Deserialize;
2use std::net::{IpAddr, Ipv4Addr, SocketAddr};
3
4#[derive(Deserialize, Clone)]
5pub struct Config {
6 pub addr: Option<SocketAddr>,
7 pub dbn: Option<i64>,
8}
9
10impl<'a> Config {
11 pub const fn new() -> Config {
12 Config {
13 addr: None,
14 dbn: None,
15 }
16 }
17
18 pub fn get_addr(&'a self) -> SocketAddr {
19 self.addr.unwrap_or_else(|| {
20 SocketAddr::new(IpAddr::V4(Ipv4Addr::new(127, 0, 0, 1)), 6379)
21 })
22 }
23
24 #[cfg(debug_assertions)]
25 pub fn get_dbn(&self) -> i64 {
26 self.dbn.unwrap_or(1)
27 }
28 #[cfg(not(debug_assertions))]
29 pub fn get_dbn(&self) -> i64 {
30 self.dbn.unwrap_or(0)
31 }
32}
33
34pub static DEF: Config = Config::new();