quantrs2_tytan/solution_debugger/
config.rs

1//! Configuration types for the solution debugger.
2
3use serde::Serialize;
4
5#[derive(Debug, Clone, Serialize)]
6pub struct DebuggerConfig {
7    /// Enable detailed analysis
8    pub detailed_analysis: bool,
9    /// Check constraint violations
10    pub check_constraints: bool,
11    /// Analyze energy breakdown
12    pub analyze_energy: bool,
13    /// Compare with known solutions
14    pub compare_solutions: bool,
15    /// Generate visualizations
16    pub generate_visuals: bool,
17    /// Output format
18    pub output_format: DebugOutputFormat,
19    /// Verbosity level
20    pub verbosity: VerbosityLevel,
21}
22
23#[derive(Debug, Clone, Serialize)]
24pub enum DebugOutputFormat {
25    /// Console output
26    Console,
27    /// HTML report
28    Html,
29    /// JSON data
30    Json,
31    /// Markdown report
32    Markdown,
33}
34
35#[derive(Debug, Clone, PartialEq, Ord, PartialOrd, Eq, Serialize)]
36pub enum VerbosityLevel {
37    /// Minimal output
38    Minimal,
39    /// Normal output
40    Normal,
41    /// Detailed output
42    Detailed,
43    /// Debug-level output
44    Debug,
45}
46
47impl Default for DebuggerConfig {
48    fn default() -> Self {
49        Self {
50            detailed_analysis: true,
51            check_constraints: true,
52            analyze_energy: true,
53            compare_solutions: false,
54            generate_visuals: false,
55            output_format: DebugOutputFormat::Console,
56            verbosity: VerbosityLevel::Normal,
57        }
58    }
59}