Skip to main content

linkprobe_core/
result.rs

1use serde::{Deserialize, Serialize};
2
3use crate::measurement::Measurement;
4use crate::server::Server;
5
6/// Outcome of one completed probe, suitable for JSON serialization or OpenMetrics export.
7#[derive(Debug, Clone, Serialize, Deserialize)]
8pub struct RunResult {
9    /// Backend name (for example `"librespeed"` or `"iperf3"`).
10    pub backend: String,
11    pub server: Server,
12    pub measurement: Measurement,
13}
14
15impl RunResult {
16    /// Construct a result from a backend label, server, and measurement.
17    pub fn new(backend: impl Into<String>, server: Server, measurement: Measurement) -> Self {
18        Self {
19            backend: backend.into(),
20            server,
21            measurement,
22        }
23    }
24}