pull/146/head
Chip Senkbeil 2 years ago
parent 431949af50
commit 218594793d
No known key found for this signature in database
GPG Key ID: 35EF1F8EC72A4131

@ -4,45 +4,25 @@ use crate::{
use serde::{de::DeserializeOwned, Serialize};
use std::{io, net::IpAddr};
pub struct TcpServerBuilder<T> {
config: ServerConfig,
handler: T,
verifier: Verifier,
}
pub struct TcpServerBuilder<T>(Server<T>);
impl Default for TcpServerBuilder<()> {
fn default() -> Self {
Self {
config: Default::default(),
handler: (),
verifier: Verifier::empty(),
}
Self(Server::new())
}
}
impl<T> TcpServerBuilder<T> {
pub fn config(self, config: ServerConfig) -> Self {
Self {
config,
handler: self.handler,
verifier: self.verifier,
}
Self(self.0.config(config))
}
pub fn handler<U>(self, handler: U) -> TcpServerBuilder<U> {
TcpServerBuilder {
config: self.config,
handler,
verifier: self.verifier,
}
TcpServerBuilder(self.0.handler(handler))
}
pub fn verifier(self, verifier: Verifier) -> Self {
Self {
config: self.config,
handler: self.handler,
verifier,
}
Self(self.0.verifier(verifier))
}
}
@ -59,12 +39,7 @@ where
{
let listener = TcpListener::bind(addr, port).await?;
let port = listener.port();
let server = Server {
config: self.config,
handler: self.handler,
verifier: self.verifier,
};
let inner = server.start(listener)?;
let inner = self.0.start(listener)?;
Ok(TcpServerRef { addr, port, inner })
}
}

@ -4,45 +4,25 @@ use crate::{
use serde::{de::DeserializeOwned, Serialize};
use std::{io, path::Path};
pub struct UnixSocketServerBuilder<T> {
config: ServerConfig,
handler: T,
verifier: Verifier,
}
pub struct UnixSocketServerBuilder<T>(Server<T>);
impl Default for UnixSocketServerBuilder<()> {
fn default() -> Self {
Self {
config: Default::default(),
handler: (),
verifier: Verifier::empty(),
}
Self(Server::new())
}
}
impl<T> UnixSocketServerBuilder<T> {
pub fn config(self, config: ServerConfig) -> Self {
Self {
config,
handler: self.handler,
verifier: self.verifier,
}
Self(self.0.config(config))
}
pub fn handler<U>(self, handler: U) -> UnixSocketServerBuilder<U> {
UnixSocketServerBuilder {
config: self.config,
handler,
verifier: self.verifier,
}
UnixSocketServerBuilder(self.0.handler(handler))
}
pub fn verifier(self, verifier: Verifier) -> Self {
Self {
config: self.config,
handler: self.handler,
verifier,
}
Self(self.0.verifier(verifier))
}
}
@ -60,13 +40,7 @@ where
let path = path.as_ref();
let listener = UnixSocketListener::bind(path).await?;
let path = listener.path().to_path_buf();
let server = Server {
config: self.config,
handler: self.handler,
verifier: self.verifier,
};
let inner = server.start(listener)?;
let inner = self.0.start(listener)?;
Ok(UnixSocketServerRef { path, inner })
}
}

@ -7,45 +7,25 @@ use std::{
io,
};
pub struct WindowsPipeServerBuilder<T> {
config: ServerConfig,
handler: T,
verifier: Verifier,
}
pub struct WindowsPipeServerBuilder<T>(Server<T>);
impl Default for WindowsPipeServerBuilder<()> {
fn default() -> Self {
Self {
config: Default::default(),
handler: (),
verifier: Verifier::empty(),
}
Self(Server::new())
}
}
impl<T> WindowsPipeServerBuilder<T> {
pub fn verifier(self, verifier: Verifier) -> Self {
Self {
config: self.config,
handler: self.handler,
verifier,
}
}
pub fn config(self, config: ServerConfig) -> Self {
Self {
config,
handler: self.handler,
verifier: self.verifier,
}
Self(self.0.config(config))
}
pub fn handler<U>(self, handler: U) -> WindowsPipeServerBuilder<U> {
WindowsPipeServerBuilder {
config: self.config,
handler,
verifier: self.verifier,
}
WindowsPipeServerBuilder(self.0.handler(handler))
}
pub fn verifier(self, verifier: Verifier) -> Self {
Self(self.0.verifier(verifier))
}
}
@ -64,13 +44,7 @@ where
let a = addr.as_ref();
let listener = WindowsPipeListener::bind(a)?;
let addr = listener.addr().to_os_string();
let server = Server {
config: self.config,
handler: self.handler,
verifier: self.verifier,
};
let inner = server.start(listener)?;
let inner = self.0.start(listener)?;
Ok(WindowsPipeServerRef { addr, inner })
}

Loading…
Cancel
Save