Kotlin/kotlin-script-examples

request: sample to get return value of eval

tateisu opened this issue · 1 comments

can you add sample to get return value of eval() ?

something like this:

val result : ResultWithDiagnostics<EvaluationResult> = eval(...)

result.castOrError<ResultWithDiagnostics.Success<EvaluationResult>> {
    "script evaluation failed. $it"
}.value.returnValue.castOrError<ResultValue.Value> {
    "script evaluation result is $it"
}.value.castOrError<AppConfig> { // your expected class for value
    "script returns value, but it's not AppConfig. ${it?.javaClass?.simpleName}"
}.let { config = it }

inline fun <reified T:Any> Any?.castOrError(noinline messageCreator:(Any?)->String) =
    (this as? T) ?: error(messageCreator(this))