use std::task::{Context, Poll}; use actix_service::{Service, ServiceFactory}; use futures_util::future::{ready, Ready}; use crate::error::Error; use crate::request::Request; pub struct ExpectHandler; impl ServiceFactory for ExpectHandler { type Config = (); type Request = Request; type Response = Request; type Error = Error; type Service = ExpectHandler; type InitError = Error; type Future = Ready>; fn new_service(&self, _: Self::Config) -> Self::Future { ready(Ok(ExpectHandler)) } } impl Service for ExpectHandler { type Request = Request; type Response = Request; type Error = Error; type Future = Ready>; fn poll_ready(&mut self, _: &mut Context<'_>) -> Poll> { Poll::Ready(Ok(())) } fn call(&mut self, req: Request) -> Self::Future { ready(Ok(req)) // TODO: add some way to trigger error // Err(error::ErrorExpectationFailed("test")) } }