use std::os::unix::net::UnixListener; use anyhow::Result; use super::conn::Connection; pub struct IpcServer { listener: UnixListener, } impl IpcServer { pub fn bind_unix(path: &str) -> Result { let _ = std::fs::remove_file(path); let listener = UnixListener::bind(path)?; Ok(IpcServer { listener }) } pub fn accept(&self) -> Result { let (stream, _addr) = self.listener.accept()?; Connection::from_stream(stream) } }