1use std::net::{TcpStream, ToSocketAddrs};
2
3use anyhow::Result;
4
5use crate::RwBuilder;
6
7#[derive(Debug)]
11pub struct Builder<A>
12where
13 A: ToSocketAddrs,
14{
15 addr: A,
17}
18
19impl<A> Builder<A>
20where
21 A: ToSocketAddrs,
22{
23 pub const fn new(addr: A) -> Self {
25 Self { addr }
26 }
27}
28
29impl<A> RwBuilder for Builder<A>
30where
31 A: ToSocketAddrs,
32{
33 type Reader = TcpStream;
34 type Writer = TcpStream;
35
36 fn reader(&self) -> Result<Self::Reader> {
37 let stream = TcpStream::connect(&self.addr)?;
38 Ok(stream)
39 }
40
41 fn writer(&self) -> Result<Self::Writer> {
42 let stream = TcpStream::connect(&self.addr)?;
43 Ok(stream)
44 }
45}