// This file is automatically generated, so please do not edit it. // @generated by `flutter_rust_bridge`@ 2.12.0. // ignore_for_file: unused_import, annotate_overrides, non_constant_identifier_names, prefer_const_literals_to_create_immutables import 'dart:async'; import 'dart:convert'; import 'package:flutter_rust_bridge/flutter_rust_bridge_for_generated.dart'; import 'bridge.dart'; import 'database/contact.dart'; import 'frb_generated.dart'; import 'frb_generated.io.dart' if (dart.library.js_interop) 'frb_generated.web.dart'; /// Main entrypoint of the Rust API class RustLib extends BaseEntrypoint { RustLib._(); @internal static final instance = RustLib._(); /// Initialize flutter_rust_bridge static Future init({ RustLibApi? api, BaseHandler? handler, ExternalLibrary? externalLibrary, bool forceSameCodegenVersion = true, }) async { await instance.initImpl( api: api, handler: handler, externalLibrary: externalLibrary, forceSameCodegenVersion: forceSameCodegenVersion, ); } /// Initialize flutter_rust_bridge in mock mode. /// No libraries for FFI are loaded. static void initMock({ required RustLibApi api, }) { instance.initMockImpl( api: api, ); } /// Dispose flutter_rust_bridge /// /// The call to this function is optional, since flutter_rust_bridge (and everything else) /// is automatically disposed when the app stops. static void dispose() => instance.disposeImpl(); @override ApiImplConstructor get apiImplConstructor => RustLibApiImpl.new; @override WireConstructor get wireConstructor => RustLibWire.fromExternalLibrary; @override Future executeRustInitializers() async {} @override ExternalLibraryLoaderConfig get defaultExternalLibraryLoaderConfig => kDefaultExternalLibraryLoaderConfig; @override String get codegenVersion => '2.12.0'; @override int get rustContentHash => 776002844; static const kDefaultExternalLibraryLoaderConfig = ExternalLibraryLoaderConfig( stem: 'rust_lib_twonly', ioDirectory: 'rust/core/target/release/', webPrefix: 'pkg/', ); } abstract class RustLibApi extends BaseApi { Future> crateBridgeGetAllContacts(); Future crateBridgeInitializeTwonly({required TwonlyConfig config}); Future crateBridgeLoadPromotions(); } class RustLibApiImpl extends RustLibApiImplPlatform implements RustLibApi { RustLibApiImpl({ required super.handler, required super.wire, required super.generalizedFrbRustBinding, required super.portManager, }); @override Future> crateBridgeGetAllContacts() { return handler.executeNormal( NormalTask( callFfi: (port_) { final serializer = SseSerializer(generalizedFrbRustBinding); pdeCallFfi( generalizedFrbRustBinding, serializer, funcId: 1, port: port_, ); }, codec: SseCodec( decodeSuccessData: sse_decode_list_contact, decodeErrorData: sse_decode_AnyhowException, ), constMeta: kCrateBridgeGetAllContactsConstMeta, argValues: [], apiImpl: this, ), ); } TaskConstMeta get kCrateBridgeGetAllContactsConstMeta => const TaskConstMeta( debugName: 'get_all_contacts', argNames: [], ); @override Future crateBridgeInitializeTwonly({required TwonlyConfig config}) { return handler.executeNormal( NormalTask( callFfi: (port_) { final serializer = SseSerializer(generalizedFrbRustBinding); sse_encode_box_autoadd_twonly_config(config, serializer); pdeCallFfi( generalizedFrbRustBinding, serializer, funcId: 2, port: port_, ); }, codec: SseCodec( decodeSuccessData: sse_decode_unit, decodeErrorData: sse_decode_AnyhowException, ), constMeta: kCrateBridgeInitializeTwonlyConstMeta, argValues: [config], apiImpl: this, ), ); } TaskConstMeta get kCrateBridgeInitializeTwonlyConstMeta => const TaskConstMeta( debugName: 'initialize_twonly', argNames: ['config'], ); @override Future crateBridgeLoadPromotions() { return handler.executeNormal( NormalTask( callFfi: (port_) { final serializer = SseSerializer(generalizedFrbRustBinding); pdeCallFfi( generalizedFrbRustBinding, serializer, funcId: 3, port: port_, ); }, codec: SseCodec( decodeSuccessData: sse_decode_other_promotion, decodeErrorData: null, ), constMeta: kCrateBridgeLoadPromotionsConstMeta, argValues: [], apiImpl: this, ), ); } TaskConstMeta get kCrateBridgeLoadPromotionsConstMeta => const TaskConstMeta( debugName: 'load_promotions', argNames: [], ); @protected AnyhowException dco_decode_AnyhowException(dynamic raw) { // Codec=Dco (DartCObject based), see doc to use other codecs return AnyhowException(raw as String); } @protected String dco_decode_String(dynamic raw) { // Codec=Dco (DartCObject based), see doc to use other codecs return raw as String; } @protected PlatformInt64 dco_decode_box_autoadd_i_64(dynamic raw) { // Codec=Dco (DartCObject based), see doc to use other codecs return dco_decode_i_64(raw); } @protected TwonlyConfig dco_decode_box_autoadd_twonly_config(dynamic raw) { // Codec=Dco (DartCObject based), see doc to use other codecs return dco_decode_twonly_config(raw); } @protected Contact dco_decode_contact(dynamic raw) { // Codec=Dco (DartCObject based), see doc to use other codecs final arr = raw as List; if (arr.length != 2) throw Exception('unexpected arr length: expect 2 but see ${arr.length}'); return Contact( userId: dco_decode_i_64(arr[0]), username: dco_decode_String(arr[1]), ); } @protected PlatformInt64 dco_decode_i_64(dynamic raw) { // Codec=Dco (DartCObject based), see doc to use other codecs return dcoDecodeI64(raw); } @protected List dco_decode_list_contact(dynamic raw) { // Codec=Dco (DartCObject based), see doc to use other codecs return (raw as List).map(dco_decode_contact).toList(); } @protected Uint8List dco_decode_list_prim_u_8_strict(dynamic raw) { // Codec=Dco (DartCObject based), see doc to use other codecs return raw as Uint8List; } @protected PlatformInt64? dco_decode_opt_box_autoadd_i_64(dynamic raw) { // Codec=Dco (DartCObject based), see doc to use other codecs return raw == null ? null : dco_decode_box_autoadd_i_64(raw); } @protected OtherPromotion dco_decode_other_promotion(dynamic raw) { // Codec=Dco (DartCObject based), see doc to use other codecs final arr = raw as List; if (arr.length != 6) throw Exception('unexpected arr length: expect 6 but see ${arr.length}'); return OtherPromotion( promotionId: dco_decode_u_32(arr[0]), publicId: dco_decode_i_64(arr[1]), fromContactId: dco_decode_i_64(arr[2]), threshold: dco_decode_u_8(arr[3]), announcementShare: dco_decode_list_prim_u_8_strict(arr[4]), publicKeyVerifiedTimestamp: dco_decode_opt_box_autoadd_i_64(arr[5]), ); } @protected TwonlyConfig dco_decode_twonly_config(dynamic raw) { // Codec=Dco (DartCObject based), see doc to use other codecs final arr = raw as List; if (arr.length != 2) throw Exception('unexpected arr length: expect 2 but see ${arr.length}'); return TwonlyConfig( databasePath: dco_decode_String(arr[0]), dataDirectory: dco_decode_String(arr[1]), ); } @protected int dco_decode_u_32(dynamic raw) { // Codec=Dco (DartCObject based), see doc to use other codecs return raw as int; } @protected int dco_decode_u_8(dynamic raw) { // Codec=Dco (DartCObject based), see doc to use other codecs return raw as int; } @protected void dco_decode_unit(dynamic raw) { // Codec=Dco (DartCObject based), see doc to use other codecs return; } @protected AnyhowException sse_decode_AnyhowException(SseDeserializer deserializer) { // Codec=Sse (Serialization based), see doc to use other codecs final inner = sse_decode_String(deserializer); return AnyhowException(inner); } @protected String sse_decode_String(SseDeserializer deserializer) { // Codec=Sse (Serialization based), see doc to use other codecs final inner = sse_decode_list_prim_u_8_strict(deserializer); return utf8.decoder.convert(inner); } @protected PlatformInt64 sse_decode_box_autoadd_i_64(SseDeserializer deserializer) { // Codec=Sse (Serialization based), see doc to use other codecs return sse_decode_i_64(deserializer); } @protected TwonlyConfig sse_decode_box_autoadd_twonly_config( SseDeserializer deserializer, ) { // Codec=Sse (Serialization based), see doc to use other codecs return sse_decode_twonly_config(deserializer); } @protected Contact sse_decode_contact(SseDeserializer deserializer) { // Codec=Sse (Serialization based), see doc to use other codecs final var_userId = sse_decode_i_64(deserializer); final var_username = sse_decode_String(deserializer); return Contact(userId: var_userId, username: var_username); } @protected PlatformInt64 sse_decode_i_64(SseDeserializer deserializer) { // Codec=Sse (Serialization based), see doc to use other codecs return deserializer.buffer.getPlatformInt64(); } @protected List sse_decode_list_contact(SseDeserializer deserializer) { // Codec=Sse (Serialization based), see doc to use other codecs final len_ = sse_decode_i_32(deserializer); final ans_ = []; for (var idx_ = 0; idx_ < len_; ++idx_) { ans_.add(sse_decode_contact(deserializer)); } return ans_; } @protected Uint8List sse_decode_list_prim_u_8_strict(SseDeserializer deserializer) { // Codec=Sse (Serialization based), see doc to use other codecs final len_ = sse_decode_i_32(deserializer); return deserializer.buffer.getUint8List(len_); } @protected PlatformInt64? sse_decode_opt_box_autoadd_i_64(SseDeserializer deserializer) { // Codec=Sse (Serialization based), see doc to use other codecs if (sse_decode_bool(deserializer)) { return sse_decode_box_autoadd_i_64(deserializer); } else { return null; } } @protected OtherPromotion sse_decode_other_promotion(SseDeserializer deserializer) { // Codec=Sse (Serialization based), see doc to use other codecs final var_promotionId = sse_decode_u_32(deserializer); final var_publicId = sse_decode_i_64(deserializer); final var_fromContactId = sse_decode_i_64(deserializer); final var_threshold = sse_decode_u_8(deserializer); final var_announcementShare = sse_decode_list_prim_u_8_strict(deserializer); final var_publicKeyVerifiedTimestamp = sse_decode_opt_box_autoadd_i_64( deserializer, ); return OtherPromotion( promotionId: var_promotionId, publicId: var_publicId, fromContactId: var_fromContactId, threshold: var_threshold, announcementShare: var_announcementShare, publicKeyVerifiedTimestamp: var_publicKeyVerifiedTimestamp, ); } @protected TwonlyConfig sse_decode_twonly_config(SseDeserializer deserializer) { // Codec=Sse (Serialization based), see doc to use other codecs final var_databasePath = sse_decode_String(deserializer); final var_dataDirectory = sse_decode_String(deserializer); return TwonlyConfig( databasePath: var_databasePath, dataDirectory: var_dataDirectory, ); } @protected int sse_decode_u_32(SseDeserializer deserializer) { // Codec=Sse (Serialization based), see doc to use other codecs return deserializer.buffer.getUint32(); } @protected int sse_decode_u_8(SseDeserializer deserializer) { // Codec=Sse (Serialization based), see doc to use other codecs return deserializer.buffer.getUint8(); } @protected void sse_decode_unit(SseDeserializer deserializer) { // Codec=Sse (Serialization based), see doc to use other codecs } @protected int sse_decode_i_32(SseDeserializer deserializer) { // Codec=Sse (Serialization based), see doc to use other codecs return deserializer.buffer.getInt32(); } @protected bool sse_decode_bool(SseDeserializer deserializer) { // Codec=Sse (Serialization based), see doc to use other codecs return deserializer.buffer.getUint8() != 0; } @protected void sse_encode_AnyhowException( AnyhowException self, SseSerializer serializer, ) { // Codec=Sse (Serialization based), see doc to use other codecs sse_encode_String(self.message, serializer); } @protected void sse_encode_String(String self, SseSerializer serializer) { // Codec=Sse (Serialization based), see doc to use other codecs sse_encode_list_prim_u_8_strict(utf8.encoder.convert(self), serializer); } @protected void sse_encode_box_autoadd_i_64( PlatformInt64 self, SseSerializer serializer, ) { // Codec=Sse (Serialization based), see doc to use other codecs sse_encode_i_64(self, serializer); } @protected void sse_encode_box_autoadd_twonly_config( TwonlyConfig self, SseSerializer serializer, ) { // Codec=Sse (Serialization based), see doc to use other codecs sse_encode_twonly_config(self, serializer); } @protected void sse_encode_contact(Contact self, SseSerializer serializer) { // Codec=Sse (Serialization based), see doc to use other codecs sse_encode_i_64(self.userId, serializer); sse_encode_String(self.username, serializer); } @protected void sse_encode_i_64(PlatformInt64 self, SseSerializer serializer) { // Codec=Sse (Serialization based), see doc to use other codecs serializer.buffer.putPlatformInt64(self); } @protected void sse_encode_list_contact(List self, SseSerializer serializer) { // Codec=Sse (Serialization based), see doc to use other codecs sse_encode_i_32(self.length, serializer); for (final item in self) { sse_encode_contact(item, serializer); } } @protected void sse_encode_list_prim_u_8_strict( Uint8List self, SseSerializer serializer, ) { // Codec=Sse (Serialization based), see doc to use other codecs sse_encode_i_32(self.length, serializer); serializer.buffer.putUint8List(self); } @protected void sse_encode_opt_box_autoadd_i_64( PlatformInt64? self, SseSerializer serializer, ) { // Codec=Sse (Serialization based), see doc to use other codecs sse_encode_bool(self != null, serializer); if (self != null) { sse_encode_box_autoadd_i_64(self, serializer); } } @protected void sse_encode_other_promotion( OtherPromotion self, SseSerializer serializer, ) { // Codec=Sse (Serialization based), see doc to use other codecs sse_encode_u_32(self.promotionId, serializer); sse_encode_i_64(self.publicId, serializer); sse_encode_i_64(self.fromContactId, serializer); sse_encode_u_8(self.threshold, serializer); sse_encode_list_prim_u_8_strict(self.announcementShare, serializer); sse_encode_opt_box_autoadd_i_64( self.publicKeyVerifiedTimestamp, serializer, ); } @protected void sse_encode_twonly_config(TwonlyConfig self, SseSerializer serializer) { // Codec=Sse (Serialization based), see doc to use other codecs sse_encode_String(self.databasePath, serializer); sse_encode_String(self.dataDirectory, serializer); } @protected void sse_encode_u_32(int self, SseSerializer serializer) { // Codec=Sse (Serialization based), see doc to use other codecs serializer.buffer.putUint32(self); } @protected void sse_encode_u_8(int self, SseSerializer serializer) { // Codec=Sse (Serialization based), see doc to use other codecs serializer.buffer.putUint8(self); } @protected void sse_encode_unit(void self, SseSerializer serializer) { // Codec=Sse (Serialization based), see doc to use other codecs } @protected void sse_encode_i_32(int self, SseSerializer serializer) { // Codec=Sse (Serialization based), see doc to use other codecs serializer.buffer.putInt32(self); } @protected void sse_encode_bool(bool self, SseSerializer serializer) { // Codec=Sse (Serialization based), see doc to use other codecs serializer.buffer.putUint8(self ? 1 : 0); } }