ckb_app_config/configs/
rich_indexer.rs1use serde::{Deserialize, Serialize};
2use std::{default::Default, path::PathBuf};
3
4const PGSQL: &str = "postgres://";
5const SQLITE: &str = "sqlite://";
6
7#[derive(Clone, Debug, Serialize, Deserialize, Default, PartialEq, Eq, Copy)]
9#[serde(rename_all = "lowercase")]
10pub enum DBDriver {
11 #[default]
13 Sqlite,
14 Postgres,
16}
17
18impl std::fmt::Display for DBDriver {
19 fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result {
20 match self {
21 DBDriver::Postgres => write!(f, "{}", PGSQL),
22 DBDriver::Sqlite => write!(f, "{}", SQLITE),
23 }
24 }
25}
26
27#[derive(Clone, Debug, Serialize, Deserialize)]
29pub struct RichIndexerConfig {
30 #[serde(default)]
32 pub db_type: DBDriver,
33 #[serde(default)]
36 pub store: PathBuf,
37 #[serde(default = "default_db_name")]
39 pub db_name: String,
40 #[serde(default = "default_db_host")]
42 pub db_host: String,
43 #[serde(default = "default_db_port")]
45 pub db_port: u16,
46 #[serde(default = "default_db_user")]
48 pub db_user: String,
49 #[serde(default = "default_db_password")]
51 pub db_password: String,
52}
53
54impl Default for RichIndexerConfig {
55 fn default() -> Self {
56 Self {
57 db_type: DBDriver::default(),
58 store: PathBuf::default(),
59 db_name: default_db_name(),
60 db_host: default_db_host(),
61 db_port: default_db_port(),
62 db_user: default_db_user(),
63 db_password: default_db_password(),
64 }
65 }
66}
67
68fn default_db_name() -> String {
69 "ckb-rich-indexer".to_string()
70}
71
72fn default_db_host() -> String {
73 "127.0.0.1".to_string()
74}
75
76fn default_db_port() -> u16 {
77 8532
78}
79
80fn default_db_user() -> String {
81 "postgres".to_string()
82}
83
84fn default_db_password() -> String {
85 "123456".to_string()
86}