use serde::{Deserialize, Serialize};
#[derive(Debug, Serialize, Deserialize, PartialEq, Clone)]
#[serde(rename_all = "camelCase")]
pub struct SnowballParameters {
pub k: i32,
pub alpha: i32,
pub beta_virtuous: i32,
pub beta_rogue: i32,
pub concurrent_repolls: i32,
pub optimal_processing: i32,
pub max_outstanding_items: i32,
pub max_item_processing_time: i64,
pub mixed_query_num_push_vdr: i32,
pub mixed_query_num_push_non_vdr: i32,
}
impl Default for SnowballParameters {
fn default() -> Self {
Self {
k: 20,
alpha: 15,
beta_virtuous: 15,
beta_rogue: 20,
concurrent_repolls: 4,
optimal_processing: 50,
max_outstanding_items: 1024,
max_item_processing_time: 2 * 1000 * 1000 * 1000, mixed_query_num_push_vdr: 10,
mixed_query_num_push_non_vdr: 0,
}
}
}
#[derive(Debug, Serialize, Deserialize, PartialEq, Clone)]
#[serde(rename_all = "camelCase")]
pub struct Parameters {
#[serde(flatten)]
pub snowball_parameters: SnowballParameters,
pub parents: i32,
pub batch_size: i32,
}
impl Default for Parameters {
fn default() -> Self {
Self {
snowball_parameters: SnowballParameters::default(),
parents: 5,
batch_size: 30,
}
}
}