use datasize::DataSize;
use serde::{Deserialize, Serialize};
use crate::{
logging::LoggingConfig, types::NodeConfig, ConsensusConfig, ContractRuntimeConfig,
DeployAcceptorConfig, EventStreamServerConfig, FetcherConfig, GossipConfig, RestServerConfig,
RpcServerConfig, SmallNetworkConfig, StorageConfig,
};
#[derive(DataSize, Debug, Default, Deserialize, Serialize)]
#[serde(deny_unknown_fields)]
pub struct Config {
pub node: NodeConfig,
pub logging: LoggingConfig,
pub consensus: ConsensusConfig,
pub network: SmallNetworkConfig,
pub event_stream_server: EventStreamServerConfig,
pub rest_server: RestServerConfig,
pub rpc_server: RpcServerConfig,
pub storage: StorageConfig,
pub gossip: GossipConfig,
pub fetcher: FetcherConfig,
pub contract_runtime: ContractRuntimeConfig,
pub deploy_acceptor: DeployAcceptorConfig,
}