use super::link::PortRecord;
use crate::types::{NodeId, RuntimeId};
use serde::{Deserialize, Serialize};
#[derive(PartialEq, Eq, Serialize, Deserialize, Debug, Clone)]
pub enum ZFConnectorKind {
Sender,
Receiver,
}
impl std::fmt::Display for ZFConnectorKind {
fn fmt(&self, f: &mut std::fmt::Formatter) -> std::fmt::Result {
match self {
Self::Receiver => write!(f, "Receiver"),
Self::Sender => write!(f, "Sender"),
}
}
}
#[derive(Serialize, Deserialize, Debug, Clone)]
pub struct ZFConnectorRecord {
pub kind: ZFConnectorKind,
pub id: NodeId,
pub resource: String,
pub link_id: PortRecord,
pub runtime: RuntimeId,
pub shared_memory_element_size: Option<usize>,
pub shared_memory_elements: Option<usize>,
pub shared_memory_backoff: Option<u64>,
}
impl std::fmt::Display for ZFConnectorRecord {
fn fmt(&self, f: &mut std::fmt::Formatter) -> std::fmt::Result {
write!(
f,
"{} - {} - Kind: Connector{}",
self.id, self.resource, self.kind
)
}
}