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}