micromegas_telemetry/
stream_info.rs

1use micromegas_transit::UserDefinedType;
2use serde::{Deserialize, Serialize};
3use std::collections::HashMap;
4use uuid::Uuid;
5
6/// Contains information about a telemetry stream.
7///
8/// This struct is sent once at the beginning of a stream and provides
9/// metadata about the stream, such as the process and stream IDs,
10/// dependencies, and other properties.
11#[derive(Debug, Serialize, Deserialize)]
12pub struct StreamInfo {
13    #[serde(
14        deserialize_with = "micromegas_transit::uuid_utils::uuid_from_string",
15        serialize_with = "micromegas_transit::uuid_utils::uuid_to_string"
16    )]
17    pub process_id: Uuid,
18    #[serde(
19        deserialize_with = "micromegas_transit::uuid_utils::uuid_from_string",
20        serialize_with = "micromegas_transit::uuid_utils::uuid_to_string"
21    )]
22    pub stream_id: Uuid,
23    pub dependencies_metadata: Vec<UserDefinedType>,
24    pub objects_metadata: Vec<UserDefinedType>,
25    pub tags: Vec<String>,
26    pub properties: HashMap<String, String>,
27}