run method
Runs the handle to completion.
Implementation
@override
RunResult run(int handle) {
final ptr = Pointer<ffi_native.MontyHandle>.fromAddress(handle);
final outResult = calloc<Pointer<Char>>();
final outError = calloc<Pointer<Char>>();
try {
final tag = ffi_native.monty_run(ptr, outResult, outError);
final resultJson = _readAndFreeString(outResult.value);
final errorMsg = _readAndFreeString(outError.value);
return RunResult(
tag: tag.value,
resultJson: resultJson,
errorMessage: errorMsg,
);
} finally {
calloc
..free(outResult)
..free(outError);
}
}