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}, }; pub struct MakeSvc { pub settings: Arc, pub nats: 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(), })) } }