Module.loadFromFile constructor

Module.loadFromFile(
  1. String path, {
  2. List<String>? inputs,
  3. List<String>? outputs,
  4. RuntimeManager? runtimeManager,
  5. ModuleConfig? config,
})

Implementation

factory Module.loadFromFile(
  String path, {
  List<String>? inputs,
  List<String>? outputs,
  RuntimeManager? runtimeManager,
  ModuleConfig? config,
}) {
  final cPath = path.toNativeUtf8().cast<ffi.Char>();
  final cInputs = inputs == null ? ffi.nullptr : _toCStringList(inputs);
  final cOutputs = outputs == null ? ffi.nullptr : _toCStringList(outputs);
  try {
    final ptr = C.mnn_module_load_from_file(
      cPath,
      cInputs,
      inputs?.length ?? 0,
      cOutputs,
      outputs?.length ?? 0,
      runtimeManager?.ptr ?? ffi.nullptr,
      config?.ptr.cast<C.mnn_module_config_t>() ?? ffi.nullptr,
    );
    return Module.fromPointer(ptr);
  } finally {
    calloc.free(cPath);
    _freeCStringList(cInputs, inputs?.length ?? 0);
    _freeCStringList(cOutputs, outputs?.length ?? 0);
  }
}