pub fn source_chain_factory<T, S, F>( factory: Arc<Mutex<F>>, ) -> ChainSegmentFactorywhere T: Send + 'static, S: SourceFunction<T> + Send + 'static, F: Fn() -> S + Send + 'static,