init static method
Implementation
static Future<YCrdtWorld> init(
WasmInstanceBuilder builder, {
required YCrdtWorldImports imports,
}) async {
late final WasmLibrary library;
WasmLibrary getLib() => library;
{
const ft =
FuncType([('function-id', U32()), ('event', YEvent._spec)], []);
(ListValue, void Function()) execImportsEventCallback(ListValue args) {
final args0 = args[0];
final args1 = args[1];
imports.eventCallback(
functionId: args0! as int, event: YEvent.fromJson(args1));
return (const [], () {});
}
final lowered = loweredImportFunction(
r'$root#event-callback', ft, execImportsEventCallback, getLib);
builder.addImport(r'$root', 'event-callback', lowered);
}
{
const ft = FuncType(
[('function-id', U32()), ('event', ListType(YEvent._spec))], []);
(ListValue, void Function()) execImportsEventDeepCallback(
ListValue args) {
final args0 = args[0];
final args1 = args[1];
imports.eventDeepCallback(
functionId: args0! as int,
event: (args1! as Iterable).map(YEvent.fromJson).toList());
return (const [], () {});
}
final lowered = loweredImportFunction(r'$root#event-deep-callback', ft,
execImportsEventDeepCallback, getLib);
builder.addImport(r'$root', 'event-deep-callback', lowered);
}
{
const ft =
FuncType([('function-id', U32()), ('event', YUndoEvent._spec)], []);
(ListValue, void Function()) execImportsUndoEventCallback(
ListValue args) {
final args0 = args[0];
final args1 = args[1];
imports.undoEventCallback(
functionId: args0! as int, event: YUndoEvent.fromJson(args1));
return (const [], () {});
}
final lowered = loweredImportFunction(r'$root#undo-event-callback', ft,
execImportsUndoEventCallback, getLib);
builder.addImport(r'$root', 'undo-event-callback', lowered);
}
final instance = await builder.build();
library = WasmLibrary(instance, int64Type: Int64TypeConfig.bigInt);
return YCrdtWorld(imports: imports, library: library);
}