Skip to main content

fpm_rs/diagnostics/
records.rs

1//! Run-scoped metadata attached to reusable metric values.
2
3use serde::{Deserialize, Serialize};
4
5use crate::metrics::intensity::{IntensityComparisonMetrics, IntensityStatistics};
6
7#[derive(Clone, Debug, Serialize, Deserialize)]
8pub struct FrameDiagnosticRecord {
9    #[serde(default, skip_serializing_if = "Option::is_none")]
10    pub iteration: Option<usize>,
11    pub frame_index: usize,
12    pub illumination_index: usize,
13    #[serde(flatten)]
14    pub metrics: IntensityComparisonMetrics,
15}
16
17#[derive(Clone, Debug, Serialize, Deserialize)]
18pub struct RawFrameStatisticsRecord {
19    pub frame_index: usize,
20    #[serde(flatten)]
21    pub metrics: IntensityStatistics,
22}