read static method

VMResult? read(
  1. BinaryReader reader
)

Implementation

static VMResult? read(BinaryReader reader) {
  if (reader.isEOF) {
    return null;
  }
  final vmPointer = reader.readVarUint();
  final moduleCount = reader.readVarUint();
  final modules = <RegisteredModule>[];
  for (int i = 0; i < moduleCount; i++) {
    final scriptId = reader.readString();
    final moduleName = reader.readString();
    final isUtility = reader.readUint8() != 0;
    final generatorRef = reader.readVarUint();
    final error = reader.readString();
    modules.add(RegisteredModule(
      scriptId: scriptId,
      moduleName: moduleName,
      isUtility: isUtility,
      generatorRef: generatorRef,
      error: error,
    ));
  }

  // Read timing data (in microseconds)
  final compileTimeUs = reader.isEOF ? 0 : reader.readVarUint();
  final loadTimeUs = reader.isEOF ? 0 : reader.readVarUint();
  final executeTimeUs = reader.isEOF ? 0 : reader.readVarUint();

  // Read console data from script execution
  Uint8List consoleData = Uint8List(0);
  if (!reader.isEOF) {
    final consoleSize = reader.readVarUint();
    if (consoleSize > 0) {
      consoleData = reader.read(consoleSize);
    }
  }

  return VMResult(
    vmPointer: vmPointer,
    modules: modules,
    compileTimeUs: compileTimeUs,
    loadTimeUs: loadTimeUs,
    executeTimeUs: executeTimeUs,
    consoleData: consoleData,
  );
}