cuprated/config/
storage.rs
1use std::path::PathBuf;
2
3use serde::{Deserialize, Serialize};
4
5use cuprate_database::config::SyncMode;
6use cuprate_database_service::ReaderThreads;
7use cuprate_helper::fs::CUPRATE_DATA_DIR;
8
9use super::macros::config_struct;
10
11config_struct! {
12 #[derive(Debug, Deserialize, Serialize, PartialEq, Eq)]
14 #[serde(deny_unknown_fields, default)]
15 pub struct StorageConfig {
16 #[comment_out = true]
17 pub reader_threads: usize,
25
26 #[child = true]
27 pub txpool: TxpoolConfig,
29
30 #[child = true]
31 pub blockchain: BlockchainConfig,
33 }
34}
35
36impl Default for StorageConfig {
37 fn default() -> Self {
38 Self {
39 reader_threads: cuprate_helper::thread::threads_25().get(),
40 txpool: Default::default(),
41 blockchain: Default::default(),
42 }
43 }
44}
45
46config_struct! {
47 #[derive(Default, Debug, Deserialize, Serialize, PartialEq, Eq)]
49 #[serde(deny_unknown_fields, default)]
50 pub struct BlockchainConfig {
51 #[flatten = true]
52 ##[serde(flatten)]
54 pub shared: SharedStorageConfig,
55 }
56}
57
58config_struct! {
59 #[derive(Debug, Deserialize, Serialize, PartialEq, Eq)]
61 #[serde(deny_unknown_fields, default)]
62 pub struct TxpoolConfig {
63 #[flatten = true]
64 ##[serde(flatten)]
66 pub shared: SharedStorageConfig,
67
68 pub max_txpool_byte_size: usize,
74 }
75}
76
77impl Default for TxpoolConfig {
78 fn default() -> Self {
79 Self {
80 shared: SharedStorageConfig::default(),
81 max_txpool_byte_size: 100_000_000,
82 }
83 }
84}
85
86config_struct! {
87 #[derive(Debug, Default, Deserialize, Serialize, PartialEq, Eq)]
89 #[serde(deny_unknown_fields, default)]
90 pub struct SharedStorageConfig {
91 #[comment_out = true]
92 pub sync_mode: SyncMode,
100 }
101}