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 bytesList = await Future.wait(
resolvedPaths.map((path) => File(path).readAsBytes()),
);
final readers = bytesList.map(MetadataReader.read).toList();
return .fromReaders(readers);
}