forked from mit-pdos/noria
-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathbackends.rs
48 lines (44 loc) · 1.41 KB
/
backends.rs
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
#[derive(Debug, PartialEq, Eq)]
pub(crate) enum Backend {
Netsoup { shards: Option<usize> },
Mssql,
Mysql,
Memcached,
Hybrid,
}
impl Backend {
pub(crate) fn multiclient_name(&self) -> &'static str {
match *self {
Backend::Netsoup { .. } => "netsoup",
Backend::Mssql { .. } => "mssql",
Backend::Mysql { .. } => "mysql",
Backend::Memcached { .. } => "memcached",
Backend::Hybrid { .. } => "hybrid",
}
}
pub(crate) fn systemd_name(&self) -> Option<&'static str> {
match *self {
Backend::Memcached => Some("memcached"),
Backend::Mysql => Some("mariadb"),
Backend::Mssql => Some("mssql-server"),
Backend::Netsoup { .. } | Backend::Hybrid { .. } => None,
}
}
pub(crate) fn uniq_name(&self) -> String {
match *self {
Backend::Netsoup { shards } => format!("netsoup_{}s", shards.unwrap_or(0)),
Backend::Hybrid | Backend::Memcached | Backend::Mysql | Backend::Mssql => {
self.multiclient_name().to_string()
}
}
}
pub(crate) fn port(&self) -> u16 {
match *self {
Backend::Netsoup { .. } => unreachable!(),
Backend::Memcached => 11211,
Backend::Hybrid => 3306,
Backend::Mysql => 3306,
Backend::Mssql => 1433,
}
}
}