metadata property

Map<String, String> get metadata

Implementation

Map<String, String> get metadata {
  final pKeys = calloc<ffi.Pointer<ffi.Pointer<ffi.Char>>>();
  final pValues = calloc<ffi.Pointer<ffi.Pointer<ffi.Char>>>();
  try {
    final length = C.mnn_module_info_get_metadata(ptr, pKeys, pValues);
    final rval = Map<String, String>.fromEntries(
      List.generate(
        length,
        (i) {
          final k = pKeys.value[i];
          final v = pValues.value[i];
          return MapEntry(
            k == ffi.nullptr ? "" : k.cast<Utf8>().toDartString(),
            v == ffi.nullptr ? "" : v.cast<Utf8>().toDartString(),
          );
        },
      ),
    );
    return rval;
  } finally {
    calloc.free(pKeys);
    calloc.free(pValues);
  }
}