working build of generated file

This commit is contained in:
Henry Hiles 2026-01-24 12:20:52 +00:00
commit e8f4ff072d
No known key found for this signature in database
4 changed files with 19 additions and 5 deletions

View file

@ -8,7 +8,11 @@ import "package:nexus/models/sync_status.dart";
import "package:nexus/src/third_party/gomuks.g.dart";
import "package:flutter_riverpod/flutter_riverpod.dart";
void gomuksCallback(Pointer<Char> command, int requestId, GomuksBuffer data) {
void gomuksCallback(
Pointer<Char> command,
int requestId,
GomuksBorrowedBuffer data,
) {
try {
final muksEventType = command.cast<Utf8>().toDartString();
final Map<String, dynamic> decodedMuksEvent = data.toJson();
@ -34,9 +38,9 @@ class ClientController extends Notifier<int> {
GomuksStart(
handle,
Pointer.fromFunction<Void Function(Pointer<Char>, Int64, GomuksBuffer)>(
gomuksCallback,
),
Pointer.fromFunction<
Void Function(Pointer<Char>, Int64, GomuksBorrowedBuffer)
>(gomuksCallback),
);
return handle;

View file

@ -5,6 +5,14 @@ import "dart:typed_data";
import "package:ffi/ffi.dart";
import "package:nexus/src/third_party/gomuks.g.dart";
extension GomuksBufferToJson on GomuksBorrowedBuffer {
Map<String, dynamic> toJson() {
final bytes = toBytes();
if (bytes.isEmpty) return {};
return jsonDecode(utf8.decode(bytes));
}
}
extension JsonToGomuksBuffer on Map<String, dynamic> {
GomuksBuffer toGomuksBuffer() {
final jsonString = json.encode(this);