actix_service

# Function fn_factory_with_config

source

    pub fn fn_factory_with_config<F, Fut, Cfg, Srv, Req, Err>(
        f: F,
    ) -> FnServiceConfig<F, Fut, Cfg, Srv, Req, Err>where
        F: Fn(Cfg) -> Fut,
        Fut: Future<Output = Result<Srv, Err>>,
        Srv: Service<Req>,

Expand description

Create `ServiceFactory` for function that accepts config argument and can produce services

Any function that has following form `Fn(Config) -> Future<Output = Service>` could act as a `ServiceFactory`.

## §Examples

    use std::io;
    use actix_service::{fn_factory_with_config, fn_service, Service, ServiceFactory};
    use futures_util::future::ok;

    #[actix_rt::main]
    async fn main() -> io::Result<()> {
        // Create service factory. factory uses config argument for
        // services it generates.
        let factory = fn_factory_with_config(|y: usize| {
            ok::<_, io::Error>(fn_service(move |x: usize| ok::<_, io::Error>(x * y)))
        });

        // construct new service with config argument
        let srv = factory.new_service(10).await?;

        let result = srv.call(10).await?;
        assert_eq!(result, 100);

        println!("10 * 10 = {}", result);
        Ok(())
    }