use super::handler::HandlerService; use crate::config::Config; use hyper::service::Service; use common::nats_crate::Connection; use std::{ future::{ready, Ready}, sync::Arc, task::{Context, Poll}, }; use ed25519_dalek::PublicKey; pub struct MakeSvc { pub settings: Arc, pub nats: Arc, pub public_key: Arc } impl Service for MakeSvc { type Response = HandlerService; type Error = std::io::Error; type Future = Ready>; fn poll_ready(&mut self, _cx: &mut Context<'_>) -> Poll> { Ok(()).into() } fn call(&mut self, _: T) -> Self::Future { ready(Ok(HandlerService { config: self.settings.clone(), nats: self.nats.clone(), public_key: self.public_key.clone() })) } }