loadMultipleMetadata method
Future<MetadataIndex>
loadMultipleMetadata({
- required List<
WindowsMetadataPackage> packages, - WindowsMetadataVersions? versions,
Loads multiple Windows Metadata packages into a MetadataIndex.
Example:
final metadataLoader = WindowsMetadataLoader();
final index = await metadataLoader.loadMultipleMetadata(
packages: [WindowsMetadataPackage.wdk, WindowsMetadataPackage.win32],
versions: WindowsMetadataVersions(wdk: '0.13.25-experimental'),
);
Implementation
Future<MetadataIndex> loadMultipleMetadata({
required List<WindowsMetadataPackage> packages,
WindowsMetadataVersions? versions,
}) async {
if (packages.isEmpty) {
throw ArgumentError.value(
packages,
'packages',
'Must contain at least one metadata package.',
);
}
final resolvedPaths = await Future.wait(
packages.map((package) {
final version = versions?._resolve(package);
return _resolveMetadataPath(package, version);
}),
);
final readers = resolvedPaths
.map((p) => MetadataReader.read(File(p).readAsBytesSync()))
.toList();
return MetadataIndex.fromReaders(readers);
}