github.com/voedger/voedger@v0.0.0-20240520144910-273e84102129/pkg/vvm/engines/provide.go (about)

     1  /*
     2   * Copyright (c) 2021-present Sigma-Soft, Ltd.
     3   * @author: Nikolay Nikitin
     4   */
     5  
     6  package engines
     7  
     8  import (
     9  	"github.com/voedger/voedger/pkg/appdef"
    10  	"github.com/voedger/voedger/pkg/iextengine"
    11  	builtin "github.com/voedger/voedger/pkg/iextengine/builtin"
    12  	wazero "github.com/voedger/voedger/pkg/iextengine/wazero"
    13  	"github.com/voedger/voedger/pkg/istructsmem"
    14  )
    15  
    16  type ExtEngineFactoriesConfig struct {
    17  	AppConfigs  istructsmem.AppConfigsType
    18  	WASMCompile bool
    19  }
    20  
    21  func ProvideExtEngineFactories(cfg ExtEngineFactoriesConfig) iextengine.ExtensionEngineFactories {
    22  	return iextengine.ExtensionEngineFactories{
    23  		appdef.ExtensionEngineKind_BuiltIn: builtin.ProvideExtensionEngineFactory(provideAppsBuiltInExtFuncs(cfg.AppConfigs)),
    24  		appdef.ExtensionEngineKind_WASM:    wazero.ProvideExtensionEngineFactory(cfg.WASMCompile),
    25  	}
    26  }