executeSync<S, E extends Object> method

S executeSync<S, E extends Object>(
  1. SyncTask<S, E> task
)

Similar to executeNormal, except that this will return synchronously

Implementation

S executeSync<S, E extends Object>(SyncTask<S, E> task) {
  final WireSyncRust2Dart syncReturn;
  try {
    syncReturn = task.callFfi();
  } catch (err, st) {
    throw PanicException('EXECUTE_SYNC_ABORT $err $st');
  }
  try {
    final syncReturnAsDartObject = wireSyncReturnIntoDart(syncReturn);
    return _transformRust2DartMessage(syncReturnAsDartObject, task.parseSuccessData, task.parseErrorData);
  } finally {
    inner.free_WireSyncRust2Dart(syncReturn);
  }
}