t2_bus 0.1.0

An inter- or intra-process message bus supporting publish/subscribe and request/response.
Documentation
use std::path::PathBuf;

use crate::{client::Client, err::BusResult, transport::memory::MemoryConnector};

#[derive(Clone)]
pub enum Connector{
    Memory(MemoryConnector),
    Unix(PathBuf),
    Tcp(String)
}

impl Connector{
    pub async fn connect(&self) -> BusResult<Client>{
        match self{
            Connector::Memory(c) => Client::new(c.connect()?),
            Connector::Unix(addr) => crate::transport::unix::connect(addr).await,
            Connector::Tcp(addr) => crate::transport::tcp::connect(addr).await
        }
    }

    pub fn new_tcp(addr: String) -> Self{
        Self::Tcp(addr)
    }

    pub fn new_unix(addr: PathBuf) -> Self {
        Self::Unix(addr)
    }
}