use serde::{Deserialize, Serialize};
#[derive(Debug, Deserialize, Serialize, Clone)]
#[serde(default)]
pub struct ReviewConfig {
pub max_prompt_chars: usize,
pub max_full_content_files: usize,
pub max_chars_per_file: usize,
pub max_diff_chars: usize,
pub max_patch_chars_per_file: usize,
#[serde(default = "default_max_instructions_chars")]
pub max_instructions_chars: usize,
#[serde(default)]
pub instructions_file: Option<String>,
#[serde(default = "default_min_budget_for_call_graph")]
pub min_budget_for_call_graph: usize,
#[serde(default = "default_max_dep_release_chars")]
pub max_dep_release_chars: usize,
#[serde(default = "default_max_dep_packages")]
pub max_dep_packages: usize,
}
fn default_max_instructions_chars() -> usize {
1_500
}
fn default_min_budget_for_call_graph() -> usize {
20_000
}
fn default_max_dep_release_chars() -> usize {
2_000
}
fn default_max_dep_packages() -> usize {
3
}
impl Default for ReviewConfig {
fn default() -> Self {
Self {
max_prompt_chars: 120_000,
max_full_content_files: 10,
max_chars_per_file: 16_000,
max_diff_chars: 200_000,
max_patch_chars_per_file: 10_000,
max_instructions_chars: 1_500,
instructions_file: None,
min_budget_for_call_graph: 20_000,
max_dep_release_chars: 2_000,
max_dep_packages: 3,
}
}
}