pub(super) async fn serve<'a>( app: &Router, handle: &Handle<SocketAddr>, cert: &Path, key: &Path, dual_protocol: bool, listeners: impl Iterator<Item = TcpListener>, ) -> Result<Vec<BoxFuture<'a, Result<(), Error>>>>