ckb_app_config/legacy/
store.rs1use serde::Deserialize;
2
3#[derive(Clone, Debug, Deserialize)]
4#[serde(deny_unknown_fields)]
5pub(crate) struct StoreConfig {
6 header_cache_size: usize,
7 cell_data_cache_size: usize,
8 block_proposals_cache_size: usize,
9 block_tx_hashes_cache_size: usize,
10 block_uncles_cache_size: usize,
11 pub(crate) cellbase_cache_size: Option<usize>,
12 #[serde(default = "default_block_extensions_cache_size")]
13 block_extensions_cache_size: usize,
14 #[serde(default = "default_freezer_enable")]
15 freezer_enable: bool,
16}
17
18const fn default_block_extensions_cache_size() -> usize {
19 30
20}
21
22const fn default_freezer_enable() -> bool {
23 false
24}
25
26impl Default for crate::StoreConfig {
27 fn default() -> Self {
28 StoreConfig::default().into()
29 }
30}
31
32impl Default for StoreConfig {
33 fn default() -> Self {
34 Self {
35 header_cache_size: 4096,
36 cell_data_cache_size: 128,
37 block_proposals_cache_size: 30,
38 block_tx_hashes_cache_size: 30,
39 block_uncles_cache_size: 30,
40 cellbase_cache_size: None,
41 block_extensions_cache_size: default_block_extensions_cache_size(),
42 freezer_enable: default_freezer_enable(),
43 }
44 }
45}
46
47impl From<StoreConfig> for crate::StoreConfig {
48 fn from(input: StoreConfig) -> Self {
49 let StoreConfig {
50 header_cache_size,
51 cell_data_cache_size,
52 block_proposals_cache_size,
53 block_tx_hashes_cache_size,
54 block_uncles_cache_size,
55 cellbase_cache_size: _,
56 block_extensions_cache_size,
57 freezer_enable,
58 } = input;
59 Self {
60 header_cache_size,
61 cell_data_cache_size,
62 block_proposals_cache_size,
63 block_tx_hashes_cache_size,
64 block_uncles_cache_size,
65 block_extensions_cache_size,
66 freezer_enable,
67 }
68 }
69}