use super::Connector; use crate::common::UnixSocketTransport; use async_trait::async_trait; use std::{io, path::PathBuf}; /// Implementation of [`Connector`] to support connecting via a Unix socket. pub struct UnixSocketConnector { path: PathBuf, } impl UnixSocketConnector { pub fn new(path: impl Into) -> Self { Self { path: path.into() } } } impl> From for UnixSocketConnector { fn from(path: T) -> Self { Self::new(path) } } #[async_trait] impl Connector for UnixSocketConnector { type Transport = UnixSocketTransport; async fn connect(self) -> io::Result { UnixSocketTransport::connect(self.path).await } }