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);
}
}