use scirs2_core::ndarray::Array1;
use scirs2_core::Complex64;
use serde::{Deserialize, Serialize};
use super::config::BulkReconstructionMethod;
#[derive(Debug, Clone, Serialize, Deserialize)]
pub struct HolographicQECResult {
pub correction_successful: bool,
pub syndromes: Vec<f64>,
pub decoded_errors: Vec<usize>,
pub error_locations: Vec<usize>,
pub correction_time: std::time::Duration,
pub entanglement_entropy: f64,
pub holographic_complexity: f64,
}
#[derive(Debug, Clone)]
pub struct BulkReconstructionResult {
pub reconstructed_bulk: Array1<Complex64>,
pub reconstruction_fidelity: f64,
pub reconstruction_time: std::time::Duration,
pub method_used: BulkReconstructionMethod,
}
#[derive(Debug, Clone, Default, Serialize, Deserialize)]
pub struct HolographicQECStats {
pub total_corrections: u64,
pub successful_corrections: u64,
pub correction_time: std::time::Duration,
pub average_entanglement_entropy: f64,
pub average_holographic_complexity: f64,
pub total_reconstructions: u64,
pub average_reconstruction_fidelity: f64,
}