use serde::{Deserialize, Serialize};
use datasize::DataSize;
use casper_types::{serde_option_time_diff, TimeDiff};
use super::round_success_meter::config::Config as RSMConfig;
#[derive(DataSize, Debug, Clone, Serialize, Deserialize)]
#[serde(deny_unknown_fields)]
pub struct Config {
pub pending_vertex_timeout: TimeDiff,
#[serde(with = "serde_option_time_diff")]
pub request_state_interval: Option<TimeDiff>,
#[serde(with = "serde_option_time_diff")]
pub log_participation_interval: Option<TimeDiff>,
#[serde(with = "serde_option_time_diff")]
pub log_synchronizer_interval: Option<TimeDiff>,
pub log_unit_sizes: bool,
pub max_requests_for_vertex: usize,
pub max_request_batch_size: usize,
pub round_success_meter: RSMConfig,
}
impl Default for Config {
fn default() -> Self {
Config {
pending_vertex_timeout: "10sec".parse().unwrap(),
request_state_interval: Some("10sec".parse().unwrap()),
log_participation_interval: Some("10sec".parse().unwrap()),
log_synchronizer_interval: Some("5sec".parse().unwrap()),
log_unit_sizes: false,
max_requests_for_vertex: 5,
max_request_batch_size: 20,
round_success_meter: RSMConfig::default(),
}
}
}