use serde::{Deserialize, Serialize};

use crate::inspect::smp::structures::SmpSavePlacedStructureDynamicSideBufferNamePairSummary;

#[derive(Debug, Clone, PartialEq, Eq, Serialize, Deserialize)]
pub struct SmpSavePlacedStructureDynamicSideBufferAlignmentProbe {
    pub unique_side_buffer_name_pair_count: usize,
    pub unique_triplet_name_pair_count: usize,
    pub overlapping_name_pair_count: usize,
    pub side_buffer_row_count: usize,
    pub side_buffer_rows_with_matching_triplet_name_pair_count: usize,
    pub side_buffer_rows_without_matching_triplet_name_pair_count: usize,
    pub triplet_name_pairs_without_side_buffer_match_count: usize,
    #[serde(default)]
    pub matched_name_pair_samples: Vec<SmpSavePlacedStructureDynamicSideBufferNamePairSummary>,
    #[serde(default)]
    pub unmatched_side_buffer_name_pair_samples:
        Vec<SmpSavePlacedStructureDynamicSideBufferNamePairSummary>,
    #[serde(default)]
    pub evidence: Vec<String>,
}
