Skip to main content

ckb_app_config/legacy/
store.rs

1use 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}