blob: 66af85d96de2771581f64064dd726b07ba7bdfb8 [file]
// Copyright (c) 2023, the Dart project authors. Please see the AUTHORS file
// for details. All rights reserved. Use of this source code is governed by a
// BSD-style license that can be found in the LICENSE file.
import '../serialize/serialize.dart';
import 'ir.dart';
class Imports {
late final List<Import> all;
final List<ImportedFunction> functions;
final List<ImportedTag> tags;
final List<ImportedGlobal> globals;
final List<ImportedTable> tables;
final List<ImportedMemory> memories;
Imports(this.functions, this.tags, this.globals, this.tables, this.memories) {
all = [...functions, ...tags, ...globals, ...tables, ...memories];
}
Imports.deserialized(
this.all,
this.functions,
this.tags,
this.globals,
this.tables,
this.memories,
) : assert(
all.length ==
(functions.length +
tags.length +
globals.length +
tables.length +
memories.length),
);
}
/// Any import (function, table, memory or global).
abstract class Import implements Indexable, Serializable {
String get module;
@override
String get name;
}