capybara-core 0.0.1-alpha.1

A reverse proxy in Rust, which is inspired from Nginx/OpenResty/Envoy.
Documentation
use std::fmt::{Display, Formatter};
use std::net::SocketAddr;

use capybara_util::cachestr::Cachestr;
pub use tcp::TcpListenerBuilder;
pub use tls::{TlsAcceptorBuilder, TlsConnectorBuilder};

pub mod tcp;
pub mod tls;

pub trait Addressable {
    fn address(&self) -> &Address;
}

#[derive(Clone)]
pub enum Address {
    Direct(SocketAddr),
    Domain(Cachestr, u16),
}

impl Display for Address {
    fn fmt(&self, f: &mut Formatter<'_>) -> std::fmt::Result {
        match self {
            Address::Direct(addr) => write!(f, "{}", addr),
            Address::Domain(domain, port) => write!(f, "{}:{}", domain, port),
        }
    }
}