blob: 2a3bbd53c95d8c5cca4733a13458e70365223b88 [file] [edit]
// 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;
}