Remove evaluator from script definition, simplify interface
This commit is contained in:
@@ -18,8 +18,6 @@ interface ScriptDefinition {
|
||||
// constructor(environment: ScriptingEnvironment) // the constructor is expected from implementations
|
||||
|
||||
val properties: ScriptDefinitionPropertiesBag
|
||||
|
||||
val evaluator: ScriptEvaluator<*>?
|
||||
}
|
||||
|
||||
object ScriptDefinitionProperties {
|
||||
|
||||
@@ -24,13 +24,12 @@ typealias ScriptEvaluationEnvironment = ChainedPropertyBag
|
||||
|
||||
data class EvaluationResult(val returnValue: Any?, val environment: ScriptEvaluationEnvironment)
|
||||
|
||||
// NOTE: name inconsistency: run vs evaluate
|
||||
interface ScriptEvaluator<in ScriptBase : Any> {
|
||||
interface ScriptEvaluator {
|
||||
|
||||
// constructor(properties: ScriptDefinitionPropertiesBag) // the constructor is expected from implementations
|
||||
|
||||
suspend fun eval(
|
||||
compiledScript: CompiledScript<ScriptBase>,
|
||||
compiledScript: CompiledScript<*>,
|
||||
scriptEvaluationEnvironment: ScriptEvaluationEnvironment
|
||||
): ResultWithDiagnostics<EvaluationResult>
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user