distant_net/client/builder/
unix.rs

1use std::io;
2use std::path::PathBuf;
3
4use async_trait::async_trait;
5
6use super::Connector;
7use crate::common::UnixSocketTransport;
8
9/// Implementation of [`Connector`] to support connecting via a Unix socket.
10pub struct UnixSocketConnector {
11    path: PathBuf,
12}
13
14impl UnixSocketConnector {
15    pub fn new(path: impl Into<PathBuf>) -> Self {
16        Self { path: path.into() }
17    }
18}
19
20impl<T: Into<PathBuf>> From<T> for UnixSocketConnector {
21    fn from(path: T) -> Self {
22        Self::new(path)
23    }
24}
25
26#[async_trait]
27impl Connector for UnixSocketConnector {
28    type Transport = UnixSocketTransport;
29
30    async fn connect(self) -> io::Result<Self::Transport> {
31        UnixSocketTransport::connect(self.path).await
32    }
33}