use serde::Deserialize;
use serde::Serialize;
use crate::utils::histogram::Histogram;
#[derive(Clone, Default, Debug, Serialize, Deserialize)]
pub struct NucleobaseMetrics {
pub total_gc_count: usize,
pub total_at_count: usize,
pub total_other_count: usize,
}
#[derive(Clone, Debug, Default, Serialize, Deserialize)]
pub struct RecordMetrics {
pub processed: usize,
pub ignored_flags: usize,
pub ignored_too_short: usize,
}
#[derive(Clone, Debug, Serialize, Deserialize)]
pub struct SummaryMetrics {
pub gc_content_pct: f64,
pub ignored_flags_pct: f64,
pub ignored_too_short_pct: f64,
}
#[derive(Clone, Debug, Serialize, Deserialize)]
pub struct GCContentMetrics {
pub histogram: Histogram,
pub nucleobases: NucleobaseMetrics,
pub records: RecordMetrics,
pub summary: Option<SummaryMetrics>,
}