use serde::{Deserialize, Serialize};
use std::sync::Arc;

pub type Publisher = async_ach_pubsub::Publisher<Arc<Vec<u8>>, 32, 4>;

#[derive(Debug, Serialize, Deserialize)]
pub enum LinkType {
    TcpClient,
    TcpServer,
    UdpClient,
    UdpServer,
    Serial,
}

#[derive(Debug, Serialize, Deserialize)]
pub struct Link {
    pub r#type: LinkType,
    pub addr: String,
    pub port: u32,
}