use serde::{Deserialize, Serialize};
use std::path::PathBuf;
#[derive(Debug, Clone, Serialize, Deserialize)]
#[serde(default)]
pub struct ProfilingConfig {
pub frequency: i32,
pub output_dir: Option<PathBuf>,
pub filename_prefix: String,
}
impl Default for ProfilingConfig {
fn default() -> Self {
Self {
frequency: 100,
output_dir: None,
filename_prefix: "cpu-profile".to_string(),
}
}
}
#[derive(Debug, Clone, Serialize, Deserialize, Default)]
#[serde(default)]
pub struct StartOptions {
pub frequency: Option<i32>,
pub filename: Option<String>,
}
#[derive(Debug, Clone, Serialize, Deserialize)]
pub struct ProfileResult {
pub flamegraph_path: PathBuf,
pub sample_count: usize,
pub duration_ms: u64,
}