use std::sync::Arc;
use bytes::Bytes;
use uuid::Uuid;
pub type DataId = crate::message::DataId;
pub type DataPoint = crate::message::DataPoint;
pub type DataFilter = crate::message::DataFilter;
pub type DownstreamFilter = crate::message::DownstreamFilter;
pub type QoS = crate::message::QoS;
#[derive(Clone, PartialEq, Debug)]
pub struct DataPointGroup {
pub data_id: DataId,
pub data_points: Vec<DataPoint>,
}
#[derive(Clone, PartialEq, Debug)]
pub struct UpstreamChunk {
pub sequence_number: u32,
pub data_point_groups: Vec<DataPointGroup>,
}
#[derive(Clone, PartialEq, Eq, Debug)]
pub struct UpstreamChunkResult {
pub sequence_number: u32,
pub result_code: crate::message::ResultCode,
pub result_string: String,
}
#[derive(Clone, PartialEq, Debug)]
pub struct DownstreamChunk {
pub sequence_number: u32,
pub data_point_groups: Vec<DataPointGroup>,
pub upstream: Arc<UpstreamInfo>,
}
#[derive(Clone, PartialEq, Debug)]
pub struct DownstreamMetadata {
pub source_node_id: String,
pub metadata: super::metadata::ReceivableMetadata,
}
#[derive(Clone, PartialEq, Eq, Debug)]
pub struct UpstreamInfo {
pub session_id: String,
pub stream_id: Uuid,
pub source_node_id: String,
}
#[derive(Clone, PartialEq, Eq, PartialOrd, Ord, Hash, Debug)]
pub struct UpstreamCall {
pub destination_node_id: String,
pub name: String,
pub type_: String,
pub payload: Bytes,
}
#[derive(Clone, PartialEq, Eq, PartialOrd, Ord, Hash, Debug)]
pub struct UpstreamReplyCall {
pub request_call_id: String,
pub destination_node_id: String,
pub name: String,
pub type_: String,
pub payload: Bytes,
}
#[derive(Clone, PartialEq, Eq, PartialOrd, Ord, Hash, Debug)]
pub struct DownstreamReplyCall {
pub request_call_id: String,
pub source_node_id: String,
pub name: String,
pub type_: String,
pub payload: Bytes,
}
#[derive(Clone, PartialEq, Eq, PartialOrd, Ord, Hash, Debug)]
pub struct DownstreamCall {
pub call_id: String,
pub source_node_id: String,
pub name: String,
pub type_: String,
pub payload: Bytes,
}