use serde::{Deserialize, Serialize};
#[derive(Serialize, Deserialize, Debug)]
pub struct Totals {
pub files: Option<usize>,
pub lines: Option<usize>,
pub hits: Option<usize>,
pub misses: Option<usize>,
pub partials: Option<usize>,
#[serde(default)]
pub coverage: Option<f64>,
pub branches: Option<usize>,
pub methods: Option<usize>,
pub sessions: Option<usize>,
pub complexity: Option<f64>,
pub complexity_total: Option<f64>,
#[serde(default)]
pub complexity_ratio: Option<f64>,
pub diff: Option<Diff>,
}
#[derive(Serialize, Deserialize, Debug)]
#[serde(untagged)]
pub enum Diff {
Value(u64),
Array(Vec<Option<DiffValue>>),
}
#[derive(Serialize, Deserialize, Debug)]
#[serde(untagged)]
pub enum DiffValue {
NumValue(u64),
StringValue(String),
}