Formats de données

On utilise aussi cette approche pour les entrées/sorties structurées : csv, serde_json

/// Criterion estimates
#[derive(Debug, Deserialize)]
#[non_exhaustive]
pub struct Estimates {
    /// Median execution time (ns)
    pub median: Estimate,
}

/// Single criterion estimate
#[derive(Debug, Deserialize)]
pub struct Estimate {
    /// Confidence interval
    pub confidence_interval: ConfidenceInterval,

    /// Point estimate
    pub point_estimate: f32,

    /// Standard error
    pub standard_error: f32,
}

// ... autres définitions, puis au point d'utilisation ...
let estimates = serde_json::from_slice::<Estimates>(&json_bytes[..])?;

Pour des tableaux flottants N-d, on utilisera juste des types ndarray, comme hdf5.