pub async fn serve(
listener: TcpListener,
config: Arc<ServerConfig>,
database: Arc<Database>,
tls_acceptor: Option<Arc<TlsAcceptor>>,
shutdown: Option<Receiver<()>>,
) -> Result<()>pub async fn serve(
listener: TcpListener,
config: Arc<ServerConfig>,
database: Arc<Database>,
tls_acceptor: Option<Arc<TlsAcceptor>>,
shutdown: Option<Receiver<()>>,
) -> Result<()>