// 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 'frb_generated.dart'; import 'frb_generated.io.dart' if (dart.library.js_interop) 'frb_generated.web.dart'; import 'twonly.dart'; import 'twonly/database/contact.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 => 741438464; static const kDefaultExternalLibraryLoaderConfig = ExternalLibraryLoaderConfig( stem: 'rust_lib_twonly', ioDirectory: 'rust/target/release/', webPrefix: 'pkg/', ); } abstract class RustLibApi extends BaseApi { Future> crateTwonlyGetAllContacts(); Future crateTwonlyInitializeTwonly({required TwonlyConfig config}); } class RustLibApiImpl extends RustLibApiImplPlatform implements RustLibApi { RustLibApiImpl({ required super.handler, required super.wire, required super.generalizedFrbRustBinding, required super.portManager, }); @override Future> crateTwonlyGetAllContacts() { 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: kCrateTwonlyGetAllContactsConstMeta, argValues: [], apiImpl: this, ), ); } TaskConstMeta get kCrateTwonlyGetAllContactsConstMeta => const TaskConstMeta( debugName: 'get_all_contacts', argNames: [], ); @override Future crateTwonlyInitializeTwonly({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: kCrateTwonlyInitializeTwonlyConstMeta, argValues: [config], apiImpl: this, ), ); } TaskConstMeta get kCrateTwonlyInitializeTwonlyConstMeta => const TaskConstMeta( debugName: 'initialize_twonly', argNames: ['config'], ); @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 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 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 != 1) throw Exception('unexpected arr length: expect 1 but see ${arr.length}'); return TwonlyConfig( databasePath: dco_decode_String(arr[0]), ); } @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 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 TwonlyConfig sse_decode_twonly_config(SseDeserializer deserializer) { // Codec=Sse (Serialization based), see doc to use other codecs final var_databasePath = sse_decode_String(deserializer); return TwonlyConfig(databasePath: var_databasePath); } @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_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_twonly_config(TwonlyConfig self, SseSerializer serializer) { // Codec=Sse (Serialization based), see doc to use other codecs sse_encode_String(self.databasePath, serializer); } @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); } }