public async Task <IFunctionIndexer <TFunctionMessage> > CreateFunctionIndexer <TFunctionMessage, TSearchDocument>(string indexName, Func <FunctionCall <TFunctionMessage>, TSearchDocument> mapperFunc)
            where TFunctionMessage : FunctionMessage, new()
            where TSearchDocument : class, IHasId, new()
        {
            var mapper = new FunctionMessageToSearchDocumentMapper <TFunctionMessage, TSearchDocument>(mapperFunc);

            return(await CreateFunctionIndexer(indexName, mapper));
        }
        public async Task <IFunctionIndexer <TFunctionMessage> > CreateFunctionIndexer <TFunctionMessage, TSearchDocument>(Index index, Func <FunctionCall <TFunctionMessage>, TSearchDocument> mapperFunc)
            where TFunctionMessage : FunctionMessage, new()
            where TSearchDocument : class, new()
        {
            index = await GetOrCreateAzureIndex(index);

            var mapper = new FunctionMessageToSearchDocumentMapper <TFunctionMessage, TSearchDocument>(mapperFunc);

            return(new AzureFunctionIndexer <TFunctionMessage, TSearchDocument>(index, GetOrCreateIndexClient(index.Name), mapper));
        }