diff --git a/mobile/lib/src/rust/api/usearch_api.dart b/mobile/lib/src/rust/api/usearch_api.dart index 67a5f1ad9b..777d513f9f 100644 --- a/mobile/lib/src/rust/api/usearch_api.dart +++ b/mobile/lib/src/rust/api/usearch_api.dart @@ -8,12 +8,6 @@ import 'package:photos/src/rust/frb_generated.dart'; // These functions are ignored because they are not marked as `pub`: `ensure_capacity`, `save_index` -// Rust type: RustOpaqueMoi>> -abstract class BoxError implements RustOpaqueInterface {} - -// Rust type: RustOpaqueMoi> -abstract class Matches implements RustOpaqueInterface {} - // Rust type: RustOpaqueMoi> abstract class VectorDb implements RustOpaqueInterface { Future addVector({required BigInt key, required List vector}); @@ -39,7 +33,7 @@ abstract class VectorDb implements RustOpaqueInterface { Future resetIndex(); - Future searchVectors({ + Future<(Uint64List, Float32List)> searchVectors({ required List query, required BigInt count, }); diff --git a/mobile/lib/src/rust/frb_generated.dart b/mobile/lib/src/rust/frb_generated.dart index 328ff572b4..3d182962f4 100644 --- a/mobile/lib/src/rust/frb_generated.dart +++ b/mobile/lib/src/rust/frb_generated.dart @@ -115,7 +115,7 @@ abstract class RustLibApi extends BaseApi { Future crateApiUsearchApiVectorDbResetIndex({required VectorDb that}); - Future crateApiUsearchApiVectorDbSearchVectors({ + Future<(Uint64List, Float32List)> crateApiUsearchApiVectorDbSearchVectors({ required VectorDb that, required List query, required BigInt count, @@ -125,20 +125,6 @@ abstract class RustLibApi extends BaseApi { Future crateApiSimpleInitApp(); - RustArcIncrementStrongCountFnType - get rust_arc_increment_strong_count_BoxError; - - RustArcDecrementStrongCountFnType - get rust_arc_decrement_strong_count_BoxError; - - CrossPlatformFinalizerArg get rust_arc_decrement_strong_count_BoxErrorPtr; - - RustArcIncrementStrongCountFnType get rust_arc_increment_strong_count_Matches; - - RustArcDecrementStrongCountFnType get rust_arc_decrement_strong_count_Matches; - - CrossPlatformFinalizerArg get rust_arc_decrement_strong_count_MatchesPtr; - RustArcIncrementStrongCountFnType get rust_arc_increment_strong_count_VectorDb; @@ -181,8 +167,7 @@ class RustLibApiImpl extends RustLibApiImplPlatform implements RustLibApi { }, codec: SseCodec( decodeSuccessData: sse_decode_unit, - decodeErrorData: - sse_decode_Auto_Owned_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerBoxdynError, + decodeErrorData: null, ), constMeta: kCrateApiUsearchApiVectorDbAddVectorConstMeta, argValues: [that, key, vector], @@ -222,8 +207,7 @@ class RustLibApiImpl extends RustLibApiImplPlatform implements RustLibApi { }, codec: SseCodec( decodeSuccessData: sse_decode_unit, - decodeErrorData: - sse_decode_Auto_Owned_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerBoxdynError, + decodeErrorData: null, ), constMeta: kCrateApiUsearchApiVectorDbBulkAddVectorsConstMeta, argValues: [that, keys, vectors], @@ -257,8 +241,7 @@ class RustLibApiImpl extends RustLibApiImplPlatform implements RustLibApi { }, codec: SseCodec( decodeSuccessData: sse_decode_unit, - decodeErrorData: - sse_decode_Auto_Owned_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerBoxdynError, + decodeErrorData: null, ), constMeta: kCrateApiUsearchApiVectorDbDeleteIndexConstMeta, argValues: [that], @@ -331,8 +314,7 @@ class RustLibApiImpl extends RustLibApiImplPlatform implements RustLibApi { }, codec: SseCodec( decodeSuccessData: sse_decode_list_prim_f_32_strict, - decodeErrorData: - sse_decode_Auto_Owned_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerBoxdynError, + decodeErrorData: null, ), constMeta: kCrateApiUsearchApiVectorDbGetVectorConstMeta, argValues: [that, key], @@ -363,8 +345,7 @@ class RustLibApiImpl extends RustLibApiImplPlatform implements RustLibApi { codec: SseCodec( decodeSuccessData: sse_decode_Auto_Owned_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerVectorDB, - decodeErrorData: - sse_decode_Auto_Owned_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerBoxdynError, + decodeErrorData: null, ), constMeta: kCrateApiUsearchApiVectorDbNewConstMeta, argValues: [filePath, dimensions], @@ -402,8 +383,7 @@ class RustLibApiImpl extends RustLibApiImplPlatform implements RustLibApi { }, codec: SseCodec( decodeSuccessData: sse_decode_usize, - decodeErrorData: - sse_decode_Auto_Owned_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerBoxdynError, + decodeErrorData: null, ), constMeta: kCrateApiUsearchApiVectorDbRemoveVectorConstMeta, argValues: [that, key], @@ -437,8 +417,7 @@ class RustLibApiImpl extends RustLibApiImplPlatform implements RustLibApi { }, codec: SseCodec( decodeSuccessData: sse_decode_unit, - decodeErrorData: - sse_decode_Auto_Owned_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerBoxdynError, + decodeErrorData: null, ), constMeta: kCrateApiUsearchApiVectorDbResetIndexConstMeta, argValues: [that], @@ -454,7 +433,7 @@ class RustLibApiImpl extends RustLibApiImplPlatform implements RustLibApi { ); @override - Future crateApiUsearchApiVectorDbSearchVectors({ + Future<(Uint64List, Float32List)> crateApiUsearchApiVectorDbSearchVectors({ required VectorDb that, required List query, required BigInt count, @@ -478,9 +457,8 @@ class RustLibApiImpl extends RustLibApiImplPlatform implements RustLibApi { }, codec: SseCodec( decodeSuccessData: - sse_decode_Auto_Owned_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerMatches, - decodeErrorData: - sse_decode_Auto_Owned_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerBoxdynError, + sse_decode_record_list_prim_u_64_strict_list_prim_f_32_strict, + decodeErrorData: null, ), constMeta: kCrateApiUsearchApiVectorDbSearchVectorsConstMeta, argValues: [that, query, count], @@ -549,22 +527,6 @@ class RustLibApiImpl extends RustLibApiImplPlatform implements RustLibApi { argNames: [], ); - RustArcIncrementStrongCountFnType - get rust_arc_increment_strong_count_BoxError => wire - .rust_arc_increment_strong_count_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerBoxdynError; - - RustArcDecrementStrongCountFnType - get rust_arc_decrement_strong_count_BoxError => wire - .rust_arc_decrement_strong_count_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerBoxdynError; - - RustArcIncrementStrongCountFnType - get rust_arc_increment_strong_count_Matches => wire - .rust_arc_increment_strong_count_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerMatches; - - RustArcDecrementStrongCountFnType - get rust_arc_decrement_strong_count_Matches => wire - .rust_arc_decrement_strong_count_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerMatches; - RustArcIncrementStrongCountFnType get rust_arc_increment_strong_count_VectorDb => wire .rust_arc_increment_strong_count_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerVectorDB; @@ -573,24 +535,6 @@ class RustLibApiImpl extends RustLibApiImplPlatform implements RustLibApi { get rust_arc_decrement_strong_count_VectorDb => wire .rust_arc_decrement_strong_count_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerVectorDB; - @protected - BoxError - dco_decode_Auto_Owned_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerBoxdynError( - dynamic raw, - ) { - // Codec=Dco (DartCObject based), see doc to use other codecs - return BoxErrorImpl.frbInternalDcoDecode(raw as List); - } - - @protected - Matches - dco_decode_Auto_Owned_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerMatches( - dynamic raw, - ) { - // Codec=Dco (DartCObject based), see doc to use other codecs - return MatchesImpl.frbInternalDcoDecode(raw as List); - } - @protected VectorDb dco_decode_Auto_Owned_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerVectorDB( @@ -618,24 +562,6 @@ class RustLibApiImpl extends RustLibApiImplPlatform implements RustLibApi { return VectorDbImpl.frbInternalDcoDecode(raw as List); } - @protected - BoxError - dco_decode_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerBoxdynError( - dynamic raw, - ) { - // Codec=Dco (DartCObject based), see doc to use other codecs - return BoxErrorImpl.frbInternalDcoDecode(raw as List); - } - - @protected - Matches - dco_decode_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerMatches( - dynamic raw, - ) { - // Codec=Dco (DartCObject based), see doc to use other codecs - return MatchesImpl.frbInternalDcoDecode(raw as List); - } - @protected VectorDb dco_decode_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerVectorDB( @@ -689,6 +615,22 @@ class RustLibApiImpl extends RustLibApiImplPlatform implements RustLibApi { return raw as Uint8List; } + @protected + ( + Uint64List, + Float32List + ) dco_decode_record_list_prim_u_64_strict_list_prim_f_32_strict(dynamic raw) { + // Codec=Dco (DartCObject based), see doc to use other codecs + final arr = raw as List; + if (arr.length != 2) { + throw Exception('Expected 2 elements, got ${arr.length}'); + } + return ( + dco_decode_list_prim_u_64_strict(arr[0]), + dco_decode_list_prim_f_32_strict(arr[1]), + ); + } + @protected (BigInt, BigInt, BigInt, BigInt, BigInt) dco_decode_record_usize_usize_usize_usize_usize(dynamic raw) { @@ -730,30 +672,6 @@ class RustLibApiImpl extends RustLibApiImplPlatform implements RustLibApi { return dcoDecodeU64(raw); } - @protected - BoxError - sse_decode_Auto_Owned_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerBoxdynError( - SseDeserializer deserializer, - ) { - // Codec=Sse (Serialization based), see doc to use other codecs - return BoxErrorImpl.frbInternalSseDecode( - sse_decode_usize(deserializer), - sse_decode_i_32(deserializer), - ); - } - - @protected - Matches - sse_decode_Auto_Owned_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerMatches( - SseDeserializer deserializer, - ) { - // Codec=Sse (Serialization based), see doc to use other codecs - return MatchesImpl.frbInternalSseDecode( - sse_decode_usize(deserializer), - sse_decode_i_32(deserializer), - ); - } - @protected VectorDb sse_decode_Auto_Owned_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerVectorDB( @@ -790,30 +708,6 @@ class RustLibApiImpl extends RustLibApiImplPlatform implements RustLibApi { ); } - @protected - BoxError - sse_decode_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerBoxdynError( - SseDeserializer deserializer, - ) { - // Codec=Sse (Serialization based), see doc to use other codecs - return BoxErrorImpl.frbInternalSseDecode( - sse_decode_usize(deserializer), - sse_decode_i_32(deserializer), - ); - } - - @protected - Matches - sse_decode_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerMatches( - SseDeserializer deserializer, - ) { - // Codec=Sse (Serialization based), see doc to use other codecs - return MatchesImpl.frbInternalSseDecode( - sse_decode_usize(deserializer), - sse_decode_i_32(deserializer), - ); - } - @protected VectorDb sse_decode_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerVectorDB( @@ -881,6 +775,17 @@ class RustLibApiImpl extends RustLibApiImplPlatform implements RustLibApi { return deserializer.buffer.getUint8List(len_); } + @protected + (Uint64List, Float32List) + sse_decode_record_list_prim_u_64_strict_list_prim_f_32_strict( + SseDeserializer deserializer, + ) { + // Codec=Sse (Serialization based), see doc to use other codecs + final var_field0 = sse_decode_list_prim_u_64_strict(deserializer); + final var_field1 = sse_decode_list_prim_f_32_strict(deserializer); + return (var_field0, var_field1); + } + @protected (BigInt, BigInt, BigInt, BigInt, BigInt) sse_decode_record_usize_usize_usize_usize_usize( @@ -930,32 +835,6 @@ class RustLibApiImpl extends RustLibApiImplPlatform implements RustLibApi { return deserializer.buffer.getUint8() != 0; } - @protected - void - sse_encode_Auto_Owned_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerBoxdynError( - BoxError self, - SseSerializer serializer, - ) { - // Codec=Sse (Serialization based), see doc to use other codecs - sse_encode_usize( - (self as BoxErrorImpl).frbInternalSseEncode(move: true), - serializer, - ); - } - - @protected - void - sse_encode_Auto_Owned_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerMatches( - Matches self, - SseSerializer serializer, - ) { - // Codec=Sse (Serialization based), see doc to use other codecs - sse_encode_usize( - (self as MatchesImpl).frbInternalSseEncode(move: true), - serializer, - ); - } - @protected void sse_encode_Auto_Owned_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerVectorDB( @@ -995,32 +874,6 @@ class RustLibApiImpl extends RustLibApiImplPlatform implements RustLibApi { ); } - @protected - void - sse_encode_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerBoxdynError( - BoxError self, - SseSerializer serializer, - ) { - // Codec=Sse (Serialization based), see doc to use other codecs - sse_encode_usize( - (self as BoxErrorImpl).frbInternalSseEncode(move: null), - serializer, - ); - } - - @protected - void - sse_encode_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerMatches( - Matches self, - SseSerializer serializer, - ) { - // Codec=Sse (Serialization based), see doc to use other codecs - sse_encode_usize( - (self as MatchesImpl).frbInternalSseEncode(move: null), - serializer, - ); - } - @protected void sse_encode_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerVectorDB( @@ -1100,6 +953,16 @@ class RustLibApiImpl extends RustLibApiImplPlatform implements RustLibApi { serializer.buffer.putUint8List(self); } + @protected + void sse_encode_record_list_prim_u_64_strict_list_prim_f_32_strict( + (Uint64List, Float32List) self, + SseSerializer serializer, + ) { + // Codec=Sse (Serialization based), see doc to use other codecs + sse_encode_list_prim_u_64_strict(self.$1, serializer); + sse_encode_list_prim_f_32_strict(self.$2, serializer); + } + @protected void sse_encode_record_usize_usize_usize_usize_usize( (BigInt, BigInt, BigInt, BigInt, BigInt) self, @@ -1149,46 +1012,6 @@ class RustLibApiImpl extends RustLibApiImplPlatform implements RustLibApi { } } -@sealed -class BoxErrorImpl extends RustOpaque implements BoxError { - // Not to be used by end users - BoxErrorImpl.frbInternalDcoDecode(List wire) - : super.frbInternalDcoDecode(wire, _kStaticData); - - // Not to be used by end users - BoxErrorImpl.frbInternalSseDecode(BigInt ptr, int externalSizeOnNative) - : super.frbInternalSseDecode(ptr, externalSizeOnNative, _kStaticData); - - static final _kStaticData = RustArcStaticData( - rustArcIncrementStrongCount: - RustLib.instance.api.rust_arc_increment_strong_count_BoxError, - rustArcDecrementStrongCount: - RustLib.instance.api.rust_arc_decrement_strong_count_BoxError, - rustArcDecrementStrongCountPtr: - RustLib.instance.api.rust_arc_decrement_strong_count_BoxErrorPtr, - ); -} - -@sealed -class MatchesImpl extends RustOpaque implements Matches { - // Not to be used by end users - MatchesImpl.frbInternalDcoDecode(List wire) - : super.frbInternalDcoDecode(wire, _kStaticData); - - // Not to be used by end users - MatchesImpl.frbInternalSseDecode(BigInt ptr, int externalSizeOnNative) - : super.frbInternalSseDecode(ptr, externalSizeOnNative, _kStaticData); - - static final _kStaticData = RustArcStaticData( - rustArcIncrementStrongCount: - RustLib.instance.api.rust_arc_increment_strong_count_Matches, - rustArcDecrementStrongCount: - RustLib.instance.api.rust_arc_decrement_strong_count_Matches, - rustArcDecrementStrongCountPtr: - RustLib.instance.api.rust_arc_decrement_strong_count_MatchesPtr, - ); -} - @sealed class VectorDbImpl extends RustOpaque implements VectorDb { // Not to be used by end users @@ -1246,7 +1069,7 @@ class VectorDbImpl extends RustOpaque implements VectorDb { that: this, ); - Future searchVectors({ + Future<(Uint64List, Float32List)> searchVectors({ required List query, required BigInt count, }) => diff --git a/mobile/lib/src/rust/frb_generated.io.dart b/mobile/lib/src/rust/frb_generated.io.dart index 7153fb2de4..3421eab7dd 100644 --- a/mobile/lib/src/rust/frb_generated.io.dart +++ b/mobile/lib/src/rust/frb_generated.io.dart @@ -20,27 +20,9 @@ abstract class RustLibApiImplPlatform extends BaseApiImpl { required super.portManager, }); - CrossPlatformFinalizerArg get rust_arc_decrement_strong_count_BoxErrorPtr => wire - ._rust_arc_decrement_strong_count_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerBoxdynErrorPtr; - - CrossPlatformFinalizerArg get rust_arc_decrement_strong_count_MatchesPtr => wire - ._rust_arc_decrement_strong_count_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerMatchesPtr; - CrossPlatformFinalizerArg get rust_arc_decrement_strong_count_VectorDbPtr => wire ._rust_arc_decrement_strong_count_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerVectorDBPtr; - @protected - BoxError - dco_decode_Auto_Owned_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerBoxdynError( - dynamic raw, - ); - - @protected - Matches - dco_decode_Auto_Owned_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerMatches( - dynamic raw, - ); - @protected VectorDb dco_decode_Auto_Owned_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerVectorDB( @@ -59,18 +41,6 @@ abstract class RustLibApiImplPlatform extends BaseApiImpl { dynamic raw, ); - @protected - BoxError - dco_decode_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerBoxdynError( - dynamic raw, - ); - - @protected - Matches - dco_decode_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerMatches( - dynamic raw, - ); - @protected VectorDb dco_decode_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerVectorDB( @@ -98,6 +68,12 @@ abstract class RustLibApiImplPlatform extends BaseApiImpl { @protected Uint8List dco_decode_list_prim_u_8_strict(dynamic raw); + @protected + ( + Uint64List, + Float32List + ) dco_decode_record_list_prim_u_64_strict_list_prim_f_32_strict(dynamic raw); + @protected (BigInt, BigInt, BigInt, BigInt, BigInt) dco_decode_record_usize_usize_usize_usize_usize(dynamic raw); @@ -114,18 +90,6 @@ abstract class RustLibApiImplPlatform extends BaseApiImpl { @protected BigInt dco_decode_usize(dynamic raw); - @protected - BoxError - sse_decode_Auto_Owned_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerBoxdynError( - SseDeserializer deserializer, - ); - - @protected - Matches - sse_decode_Auto_Owned_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerMatches( - SseDeserializer deserializer, - ); - @protected VectorDb sse_decode_Auto_Owned_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerVectorDB( @@ -144,18 +108,6 @@ abstract class RustLibApiImplPlatform extends BaseApiImpl { SseDeserializer deserializer, ); - @protected - BoxError - sse_decode_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerBoxdynError( - SseDeserializer deserializer, - ); - - @protected - Matches - sse_decode_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerMatches( - SseDeserializer deserializer, - ); - @protected VectorDb sse_decode_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerVectorDB( @@ -185,6 +137,12 @@ abstract class RustLibApiImplPlatform extends BaseApiImpl { @protected Uint8List sse_decode_list_prim_u_8_strict(SseDeserializer deserializer); + @protected + (Uint64List, Float32List) + sse_decode_record_list_prim_u_64_strict_list_prim_f_32_strict( + SseDeserializer deserializer, + ); + @protected (BigInt, BigInt, BigInt, BigInt, BigInt) sse_decode_record_usize_usize_usize_usize_usize( @@ -209,20 +167,6 @@ abstract class RustLibApiImplPlatform extends BaseApiImpl { @protected bool sse_decode_bool(SseDeserializer deserializer); - @protected - void - sse_encode_Auto_Owned_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerBoxdynError( - BoxError self, - SseSerializer serializer, - ); - - @protected - void - sse_encode_Auto_Owned_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerMatches( - Matches self, - SseSerializer serializer, - ); - @protected void sse_encode_Auto_Owned_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerVectorDB( @@ -244,20 +188,6 @@ abstract class RustLibApiImplPlatform extends BaseApiImpl { SseSerializer serializer, ); - @protected - void - sse_encode_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerBoxdynError( - BoxError self, - SseSerializer serializer, - ); - - @protected - void - sse_encode_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerMatches( - Matches self, - SseSerializer serializer, - ); - @protected void sse_encode_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerVectorDB( @@ -301,6 +231,12 @@ abstract class RustLibApiImplPlatform extends BaseApiImpl { SseSerializer serializer, ); + @protected + void sse_encode_record_list_prim_u_64_strict_list_prim_f_32_strict( + (Uint64List, Float32List) self, + SseSerializer serializer, + ); + @protected void sse_encode_record_usize_usize_usize_usize_usize( (BigInt, BigInt, BigInt, BigInt, BigInt) self, @@ -340,74 +276,6 @@ class RustLibWire implements BaseWire { RustLibWire(ffi.DynamicLibrary dynamicLibrary) : _lookup = dynamicLibrary.lookup; - void - rust_arc_increment_strong_count_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerBoxdynError( - ffi.Pointer ptr, - ) { - return _rust_arc_increment_strong_count_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerBoxdynError( - ptr, - ); - } - - late final _rust_arc_increment_strong_count_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerBoxdynErrorPtr = - _lookup)>>( - 'frbgen_photos_rust_arc_increment_strong_count_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerBoxdynError', - ); - late final _rust_arc_increment_strong_count_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerBoxdynError = - _rust_arc_increment_strong_count_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerBoxdynErrorPtr - .asFunction)>(); - - void - rust_arc_decrement_strong_count_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerBoxdynError( - ffi.Pointer ptr, - ) { - return _rust_arc_decrement_strong_count_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerBoxdynError( - ptr, - ); - } - - late final _rust_arc_decrement_strong_count_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerBoxdynErrorPtr = - _lookup)>>( - 'frbgen_photos_rust_arc_decrement_strong_count_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerBoxdynError', - ); - late final _rust_arc_decrement_strong_count_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerBoxdynError = - _rust_arc_decrement_strong_count_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerBoxdynErrorPtr - .asFunction)>(); - - void - rust_arc_increment_strong_count_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerMatches( - ffi.Pointer ptr, - ) { - return _rust_arc_increment_strong_count_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerMatches( - ptr, - ); - } - - late final _rust_arc_increment_strong_count_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerMatchesPtr = - _lookup)>>( - 'frbgen_photos_rust_arc_increment_strong_count_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerMatches', - ); - late final _rust_arc_increment_strong_count_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerMatches = - _rust_arc_increment_strong_count_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerMatchesPtr - .asFunction)>(); - - void - rust_arc_decrement_strong_count_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerMatches( - ffi.Pointer ptr, - ) { - return _rust_arc_decrement_strong_count_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerMatches( - ptr, - ); - } - - late final _rust_arc_decrement_strong_count_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerMatchesPtr = - _lookup)>>( - 'frbgen_photos_rust_arc_decrement_strong_count_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerMatches', - ); - late final _rust_arc_decrement_strong_count_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerMatches = - _rust_arc_decrement_strong_count_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerMatchesPtr - .asFunction)>(); - void rust_arc_increment_strong_count_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerVectorDB( ffi.Pointer ptr, diff --git a/mobile/lib/src/rust/frb_generated.web.dart b/mobile/lib/src/rust/frb_generated.web.dart index b91911a6dd..36d5abfc75 100644 --- a/mobile/lib/src/rust/frb_generated.web.dart +++ b/mobile/lib/src/rust/frb_generated.web.dart @@ -22,27 +22,9 @@ abstract class RustLibApiImplPlatform extends BaseApiImpl { required super.portManager, }); - CrossPlatformFinalizerArg get rust_arc_decrement_strong_count_BoxErrorPtr => wire - .rust_arc_decrement_strong_count_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerBoxdynError; - - CrossPlatformFinalizerArg get rust_arc_decrement_strong_count_MatchesPtr => wire - .rust_arc_decrement_strong_count_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerMatches; - CrossPlatformFinalizerArg get rust_arc_decrement_strong_count_VectorDbPtr => wire .rust_arc_decrement_strong_count_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerVectorDB; - @protected - BoxError - dco_decode_Auto_Owned_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerBoxdynError( - dynamic raw, - ); - - @protected - Matches - dco_decode_Auto_Owned_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerMatches( - dynamic raw, - ); - @protected VectorDb dco_decode_Auto_Owned_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerVectorDB( @@ -61,18 +43,6 @@ abstract class RustLibApiImplPlatform extends BaseApiImpl { dynamic raw, ); - @protected - BoxError - dco_decode_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerBoxdynError( - dynamic raw, - ); - - @protected - Matches - dco_decode_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerMatches( - dynamic raw, - ); - @protected VectorDb dco_decode_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerVectorDB( @@ -100,6 +70,12 @@ abstract class RustLibApiImplPlatform extends BaseApiImpl { @protected Uint8List dco_decode_list_prim_u_8_strict(dynamic raw); + @protected + ( + Uint64List, + Float32List + ) dco_decode_record_list_prim_u_64_strict_list_prim_f_32_strict(dynamic raw); + @protected (BigInt, BigInt, BigInt, BigInt, BigInt) dco_decode_record_usize_usize_usize_usize_usize(dynamic raw); @@ -116,18 +92,6 @@ abstract class RustLibApiImplPlatform extends BaseApiImpl { @protected BigInt dco_decode_usize(dynamic raw); - @protected - BoxError - sse_decode_Auto_Owned_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerBoxdynError( - SseDeserializer deserializer, - ); - - @protected - Matches - sse_decode_Auto_Owned_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerMatches( - SseDeserializer deserializer, - ); - @protected VectorDb sse_decode_Auto_Owned_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerVectorDB( @@ -146,18 +110,6 @@ abstract class RustLibApiImplPlatform extends BaseApiImpl { SseDeserializer deserializer, ); - @protected - BoxError - sse_decode_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerBoxdynError( - SseDeserializer deserializer, - ); - - @protected - Matches - sse_decode_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerMatches( - SseDeserializer deserializer, - ); - @protected VectorDb sse_decode_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerVectorDB( @@ -187,6 +139,12 @@ abstract class RustLibApiImplPlatform extends BaseApiImpl { @protected Uint8List sse_decode_list_prim_u_8_strict(SseDeserializer deserializer); + @protected + (Uint64List, Float32List) + sse_decode_record_list_prim_u_64_strict_list_prim_f_32_strict( + SseDeserializer deserializer, + ); + @protected (BigInt, BigInt, BigInt, BigInt, BigInt) sse_decode_record_usize_usize_usize_usize_usize( @@ -211,20 +169,6 @@ abstract class RustLibApiImplPlatform extends BaseApiImpl { @protected bool sse_decode_bool(SseDeserializer deserializer); - @protected - void - sse_encode_Auto_Owned_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerBoxdynError( - BoxError self, - SseSerializer serializer, - ); - - @protected - void - sse_encode_Auto_Owned_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerMatches( - Matches self, - SseSerializer serializer, - ); - @protected void sse_encode_Auto_Owned_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerVectorDB( @@ -246,20 +190,6 @@ abstract class RustLibApiImplPlatform extends BaseApiImpl { SseSerializer serializer, ); - @protected - void - sse_encode_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerBoxdynError( - BoxError self, - SseSerializer serializer, - ); - - @protected - void - sse_encode_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerMatches( - Matches self, - SseSerializer serializer, - ); - @protected void sse_encode_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerVectorDB( @@ -303,6 +233,12 @@ abstract class RustLibApiImplPlatform extends BaseApiImpl { SseSerializer serializer, ); + @protected + void sse_encode_record_list_prim_u_64_strict_list_prim_f_32_strict( + (Uint64List, Float32List) self, + SseSerializer serializer, + ); + @protected void sse_encode_record_usize_usize_usize_usize_usize( (BigInt, BigInt, BigInt, BigInt, BigInt) self, @@ -333,42 +269,6 @@ abstract class RustLibApiImplPlatform extends BaseApiImpl { class RustLibWire implements BaseWire { RustLibWire.fromExternalLibrary(ExternalLibrary lib); - void - rust_arc_increment_strong_count_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerBoxdynError( - int ptr, - ) => - wasmModule - .rust_arc_increment_strong_count_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerBoxdynError( - ptr, - ); - - void - rust_arc_decrement_strong_count_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerBoxdynError( - int ptr, - ) => - wasmModule - .rust_arc_decrement_strong_count_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerBoxdynError( - ptr, - ); - - void - rust_arc_increment_strong_count_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerMatches( - int ptr, - ) => - wasmModule - .rust_arc_increment_strong_count_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerMatches( - ptr, - ); - - void - rust_arc_decrement_strong_count_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerMatches( - int ptr, - ) => - wasmModule - .rust_arc_decrement_strong_count_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerMatches( - ptr, - ); - void rust_arc_increment_strong_count_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerVectorDB( int ptr, @@ -394,26 +294,6 @@ external RustLibWasmModule get wasmModule; @JS() @anonymous extension type RustLibWasmModule._(JSObject _) implements JSObject { - external void - rust_arc_increment_strong_count_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerBoxdynError( - int ptr, - ); - - external void - rust_arc_decrement_strong_count_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerBoxdynError( - int ptr, - ); - - external void - rust_arc_increment_strong_count_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerMatches( - int ptr, - ); - - external void - rust_arc_decrement_strong_count_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerMatches( - int ptr, - ); - external void rust_arc_increment_strong_count_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerVectorDB( int ptr, diff --git a/mobile/rust/src/api/usearch_api.rs b/mobile/rust/src/api/usearch_api.rs index 9a2e8f69de..b0912cfa75 100644 --- a/mobile/rust/src/api/usearch_api.rs +++ b/mobile/rust/src/api/usearch_api.rs @@ -1,7 +1,6 @@ use flutter_rust_bridge::frb; -use usearch::{ffi::Matches, Index, IndexOptions, MetricKind, ScalarKind}; +use usearch::{Index, IndexOptions, MetricKind, ScalarKind}; -use std::error::Error; use std::path::PathBuf; #[frb(opaque)] @@ -12,7 +11,7 @@ pub struct VectorDB { impl VectorDB { #[frb(sync)] - pub fn new(file_path: &str, dimensions: usize) -> Result> { + pub fn new(file_path: &str, dimensions: usize) -> Self { let path = PathBuf::from(file_path); let file_exists = path.try_exists().unwrap_or(false); @@ -24,92 +23,92 @@ impl VectorDB { options.expansion_add = 0; // auto options.expansion_search = 0; // auto - let index = Index::new(&options)?; - index.reserve(1000)?; + let index = Index::new(&options).expect("Failed to create index"); + index + .reserve(1000) + .expect("Failed to reserve space in index"); let db = Self { index, path }; if file_exists { println!("Loading index from disk."); - db.index.load(file_path)?; + db.index.load(file_path).expect("Failed to load index"); } else { println!("Creating new index."); - db.save_index()?; + db.save_index(); } - Ok(db) + db } - fn save_index(&self) -> Result<(), Box> { + fn save_index(&self) { // Ensure directory exists if let Some(parent) = self.path.parent() { - std::fs::create_dir_all(parent)?; + std::fs::create_dir_all(parent).expect("Failed to create directory"); } - self.index.save(self.path.to_str().unwrap())?; - Ok(()) + self.index + .save(self.path.to_str().expect("Invalid path")) + .expect("Failed to save index"); } - fn ensure_capacity(&self, margin: usize) -> Result<(), Box> { + fn ensure_capacity(&self, margin: usize) { let current_size = self.index.size(); let capacity = self.index.capacity(); if current_size + margin >= capacity { - self.index.reserve(current_size + margin)?; + self.index + .reserve(current_size + margin) + .expect("Failed to reserve space in index"); } - Ok(()) } - pub fn add_vector(&mut self, key: u64, vector: &Vec) -> Result<(), Box> { - self.ensure_capacity(1)?; - self.index.add(key, vector)?; - self.save_index()?; - Ok(()) + pub fn add_vector(&mut self, key: u64, vector: &Vec) { + self.ensure_capacity(1); + self.index.add(key, vector).expect("Failed to add vector"); + self.save_index(); } - pub fn bulk_add_vectors( - &mut self, - keys: Vec, - vectors: &Vec>, - ) -> Result<(), Box> { - self.ensure_capacity(keys.len())?; + pub fn bulk_add_vectors(&mut self, keys: Vec, vectors: &Vec>) { + self.ensure_capacity(keys.len()); for (key, vector) in keys.iter().zip(vectors.iter()) { - self.index.add(*key, vector)?; + self.index + .add(*key, vector) + .expect("Failed to (bulk) add vector"); } - self.save_index()?; - Ok(()) + self.save_index(); } - pub fn search_vectors( - &self, - query: &Vec, - count: usize, - ) -> Result> { - Ok(self.index.search(query, count)?) + pub fn search_vectors(&self, query: &Vec, count: usize) -> (Vec, Vec) { + let matches = self + .index + .search(query, count) + .expect("Failed to search vectors"); + (matches.keys, matches.distances) } - pub fn get_vector(&self, key: u64) -> Result, Box> { + pub fn get_vector(&self, key: u64) -> Vec { let mut vector: Vec = vec![0.0; self.index.dimensions()]; - self.index.get(key, &mut vector)?; - Ok(vector) + self.index + .get(key, &mut vector) + .expect("Failed to get vector"); + vector } - pub fn remove_vector(&mut self, key: u64) -> Result> { - let removed_count = self.index.remove(key)?; - self.save_index()?; - Ok(removed_count) + pub fn remove_vector(&mut self, key: u64) -> usize { + let removed_count = self.index.remove(key).expect("Failed to remove vector"); + self.save_index(); + removed_count } - pub fn reset_index(&mut self) -> Result<(), Box> { - self.index.reset()?; - self.save_index()?; - Ok(()) + pub fn reset_index(&mut self) { + self.index.reset(); + self.save_index(); } - pub fn delete_index(self) -> Result<(), Box> { + pub fn delete_index(self) { if self.path.exists() { - std::fs::remove_file(&self.path)?; + std::fs::remove_file(&self.path).expect("Failed to delete index file"); } else { println!("Index file does not exist."); } - Ok(()) } pub fn get_index_stats(self) -> (usize, usize, usize, usize, usize) { diff --git a/mobile/rust/src/frb_generated.rs b/mobile/rust/src/frb_generated.rs index 4e0837627f..3e87600e9d 100644 --- a/mobile/rust/src/frb_generated.rs +++ b/mobile/rust/src/frb_generated.rs @@ -75,7 +75,7 @@ fn wire__crate__api__usearch_api__VectorDb_add_vector_impl( let api_vector = >::sse_decode(&mut deserializer); deserializer.end(); move |context| { - transform_result_sse::<_, Box>((move || { + transform_result_sse::<_, ()>((move || { let mut api_that_guard = None; let decode_indices_ = flutter_rust_bridge::for_generated::lockable_compute_decode_order(vec![ @@ -90,11 +90,13 @@ fn wire__crate__api__usearch_api__VectorDb_add_vector_impl( } } let mut api_that_guard = api_that_guard.unwrap(); - let output_ok = crate::api::usearch_api::VectorDB::add_vector( - &mut *api_that_guard, - api_key, - &api_vector, - )?; + let output_ok = Result::<_, ()>::Ok({ + crate::api::usearch_api::VectorDB::add_vector( + &mut *api_that_guard, + api_key, + &api_vector, + ); + })?; Ok(output_ok) })()) } @@ -130,7 +132,7 @@ fn wire__crate__api__usearch_api__VectorDb_bulk_add_vectors_impl( let api_vectors = >>::sse_decode(&mut deserializer); deserializer.end(); move |context| { - transform_result_sse::<_, Box>((move || { + transform_result_sse::<_, ()>((move || { let mut api_that_guard = None; let decode_indices_ = flutter_rust_bridge::for_generated::lockable_compute_decode_order(vec![ @@ -145,11 +147,13 @@ fn wire__crate__api__usearch_api__VectorDb_bulk_add_vectors_impl( } } let mut api_that_guard = api_that_guard.unwrap(); - let output_ok = crate::api::usearch_api::VectorDB::bulk_add_vectors( - &mut *api_that_guard, - api_keys, - &api_vectors, - )?; + let output_ok = Result::<_, ()>::Ok({ + crate::api::usearch_api::VectorDB::bulk_add_vectors( + &mut *api_that_guard, + api_keys, + &api_vectors, + ); + })?; Ok(output_ok) })()) } @@ -181,8 +185,10 @@ fn wire__crate__api__usearch_api__VectorDb_delete_index_impl( let api_that = ::sse_decode(&mut deserializer); deserializer.end(); move |context| { - transform_result_sse::<_, Box>((move || { - let output_ok = crate::api::usearch_api::VectorDB::delete_index(api_that)?; + transform_result_sse::<_, ()>((move || { + let output_ok = Result::<_, ()>::Ok({ + crate::api::usearch_api::VectorDB::delete_index(api_that); + })?; Ok(output_ok) })()) } @@ -252,7 +258,7 @@ fn wire__crate__api__usearch_api__VectorDb_get_vector_impl( let api_key = ::sse_decode(&mut deserializer); deserializer.end(); move |context| { - transform_result_sse::<_, Box>((move || { + transform_result_sse::<_, ()>((move || { let mut api_that_guard = None; let decode_indices_ = flutter_rust_bridge::for_generated::lockable_compute_decode_order(vec![ @@ -267,8 +273,9 @@ fn wire__crate__api__usearch_api__VectorDb_get_vector_impl( } } let api_that_guard = api_that_guard.unwrap(); - let output_ok = - crate::api::usearch_api::VectorDB::get_vector(&*api_that_guard, api_key)?; + let output_ok = Result::<_, ()>::Ok( + crate::api::usearch_api::VectorDB::get_vector(&*api_that_guard, api_key), + )?; Ok(output_ok) })()) } @@ -299,9 +306,11 @@ fn wire__crate__api__usearch_api__VectorDb_new_impl( let api_file_path = ::sse_decode(&mut deserializer); let api_dimensions = ::sse_decode(&mut deserializer); deserializer.end(); - transform_result_sse::<_, Box>((move || { - let output_ok = - crate::api::usearch_api::VectorDB::new(&api_file_path, api_dimensions)?; + transform_result_sse::<_, ()>((move || { + let output_ok = Result::<_, ()>::Ok(crate::api::usearch_api::VectorDB::new( + &api_file_path, + api_dimensions, + ))?; Ok(output_ok) })()) }, @@ -335,7 +344,7 @@ fn wire__crate__api__usearch_api__VectorDb_remove_vector_impl( let api_key = ::sse_decode(&mut deserializer); deserializer.end(); move |context| { - transform_result_sse::<_, Box>((move || { + transform_result_sse::<_, ()>((move || { let mut api_that_guard = None; let decode_indices_ = flutter_rust_bridge::for_generated::lockable_compute_decode_order(vec![ @@ -350,10 +359,11 @@ fn wire__crate__api__usearch_api__VectorDb_remove_vector_impl( } } let mut api_that_guard = api_that_guard.unwrap(); - let output_ok = crate::api::usearch_api::VectorDB::remove_vector( - &mut *api_that_guard, - api_key, - )?; + let output_ok = + Result::<_, ()>::Ok(crate::api::usearch_api::VectorDB::remove_vector( + &mut *api_that_guard, + api_key, + ))?; Ok(output_ok) })()) } @@ -387,7 +397,7 @@ fn wire__crate__api__usearch_api__VectorDb_reset_index_impl( >>::sse_decode(&mut deserializer); deserializer.end(); move |context| { - transform_result_sse::<_, Box>((move || { + transform_result_sse::<_, ()>((move || { let mut api_that_guard = None; let decode_indices_ = flutter_rust_bridge::for_generated::lockable_compute_decode_order(vec![ @@ -402,8 +412,9 @@ fn wire__crate__api__usearch_api__VectorDb_reset_index_impl( } } let mut api_that_guard = api_that_guard.unwrap(); - let output_ok = - crate::api::usearch_api::VectorDB::reset_index(&mut *api_that_guard)?; + let output_ok = Result::<_, ()>::Ok({ + crate::api::usearch_api::VectorDB::reset_index(&mut *api_that_guard); + })?; Ok(output_ok) })()) } @@ -439,7 +450,7 @@ fn wire__crate__api__usearch_api__VectorDb_search_vectors_impl( let api_count = ::sse_decode(&mut deserializer); deserializer.end(); move |context| { - transform_result_sse::<_, Box>((move || { + transform_result_sse::<_, ()>((move || { let mut api_that_guard = None; let decode_indices_ = flutter_rust_bridge::for_generated::lockable_compute_decode_order(vec![ @@ -454,11 +465,12 @@ fn wire__crate__api__usearch_api__VectorDb_search_vectors_impl( } } let api_that_guard = api_that_guard.unwrap(); - let output_ok = crate::api::usearch_api::VectorDB::search_vectors( - &*api_that_guard, - &api_query, - api_count, - )?; + let output_ok = + Result::<_, ()>::Ok(crate::api::usearch_api::VectorDB::search_vectors( + &*api_that_guard, + &api_query, + api_count, + ))?; Ok(output_ok) })()) } @@ -532,38 +544,12 @@ fn wire__crate__api__simple__init_app_impl( // Section: related_funcs -flutter_rust_bridge::frb_generated_moi_arc_impl_value!( - flutter_rust_bridge::for_generated::RustAutoOpaqueInner> -); -flutter_rust_bridge::frb_generated_moi_arc_impl_value!( - flutter_rust_bridge::for_generated::RustAutoOpaqueInner -); flutter_rust_bridge::frb_generated_moi_arc_impl_value!( flutter_rust_bridge::for_generated::RustAutoOpaqueInner ); // Section: dart2rust -impl SseDecode for Box { - // Codec=Sse (Serialization based), see doc to use other codecs - fn sse_decode(deserializer: &mut flutter_rust_bridge::for_generated::SseDeserializer) -> Self { - let mut inner = >, - >>::sse_decode(deserializer); - return flutter_rust_bridge::for_generated::rust_auto_opaque_decode_owned(inner); - } -} - -impl SseDecode for Matches { - // Codec=Sse (Serialization based), see doc to use other codecs - fn sse_decode(deserializer: &mut flutter_rust_bridge::for_generated::SseDeserializer) -> Self { - let mut inner = , - >>::sse_decode(deserializer); - return flutter_rust_bridge::for_generated::rust_auto_opaque_decode_owned(inner); - } -} - impl SseDecode for VectorDB { // Codec=Sse (Serialization based), see doc to use other codecs fn sse_decode(deserializer: &mut flutter_rust_bridge::for_generated::SseDeserializer) -> Self { @@ -574,24 +560,6 @@ impl SseDecode for VectorDB { } } -impl SseDecode - for RustOpaqueMoi>> -{ - // Codec=Sse (Serialization based), see doc to use other codecs - fn sse_decode(deserializer: &mut flutter_rust_bridge::for_generated::SseDeserializer) -> Self { - let mut inner = ::sse_decode(deserializer); - return decode_rust_opaque_moi(inner); - } -} - -impl SseDecode for RustOpaqueMoi> { - // Codec=Sse (Serialization based), see doc to use other codecs - fn sse_decode(deserializer: &mut flutter_rust_bridge::for_generated::SseDeserializer) -> Self { - let mut inner = ::sse_decode(deserializer); - return decode_rust_opaque_moi(inner); - } -} - impl SseDecode for RustOpaqueMoi> { @@ -665,6 +633,15 @@ impl SseDecode for Vec { } } +impl SseDecode for (Vec, Vec) { + // Codec=Sse (Serialization based), see doc to use other codecs + fn sse_decode(deserializer: &mut flutter_rust_bridge::for_generated::SseDeserializer) -> Self { + let mut var_field0 = >::sse_decode(deserializer); + let mut var_field1 = >::sse_decode(deserializer); + return (var_field0, var_field1); + } +} + impl SseDecode for (usize, usize, usize, usize, usize) { // Codec=Sse (Serialization based), see doc to use other codecs fn sse_decode(deserializer: &mut flutter_rust_bridge::for_generated::SseDeserializer) -> Self { @@ -795,36 +772,6 @@ fn pde_ffi_dispatcher_sync_impl( // Section: rust2dart -// Codec=Dco (DartCObject based), see doc to use other codecs -impl flutter_rust_bridge::IntoDart for FrbWrapper> { - fn into_dart(self) -> flutter_rust_bridge::for_generated::DartAbi { - flutter_rust_bridge::for_generated::rust_auto_opaque_encode::<_, MoiArc<_>>(self.0) - .into_dart() - } -} -impl flutter_rust_bridge::for_generated::IntoDartExceptPrimitive for FrbWrapper> {} - -impl flutter_rust_bridge::IntoIntoDart>> for Box { - fn into_into_dart(self) -> FrbWrapper> { - self.into() - } -} - -// Codec=Dco (DartCObject based), see doc to use other codecs -impl flutter_rust_bridge::IntoDart for FrbWrapper { - fn into_dart(self) -> flutter_rust_bridge::for_generated::DartAbi { - flutter_rust_bridge::for_generated::rust_auto_opaque_encode::<_, MoiArc<_>>(self.0) - .into_dart() - } -} -impl flutter_rust_bridge::for_generated::IntoDartExceptPrimitive for FrbWrapper {} - -impl flutter_rust_bridge::IntoIntoDart> for Matches { - fn into_into_dart(self) -> FrbWrapper { - self.into() - } -} - // Codec=Dco (DartCObject based), see doc to use other codecs impl flutter_rust_bridge::IntoDart for FrbWrapper { fn into_dart(self) -> flutter_rust_bridge::for_generated::DartAbi { @@ -840,20 +787,6 @@ impl flutter_rust_bridge::IntoIntoDart> for VectorDB { } } -impl SseEncode for Box { - // Codec=Sse (Serialization based), see doc to use other codecs - fn sse_encode(self, serializer: &mut flutter_rust_bridge::for_generated::SseSerializer) { - >>>::sse_encode(flutter_rust_bridge::for_generated::rust_auto_opaque_encode::<_, MoiArc<_>>(self), serializer); - } -} - -impl SseEncode for Matches { - // Codec=Sse (Serialization based), see doc to use other codecs - fn sse_encode(self, serializer: &mut flutter_rust_bridge::for_generated::SseSerializer) { - >>::sse_encode(flutter_rust_bridge::for_generated::rust_auto_opaque_encode::<_, MoiArc<_>>(self), serializer); - } -} - impl SseEncode for VectorDB { // Codec=Sse (Serialization based), see doc to use other codecs fn sse_encode(self, serializer: &mut flutter_rust_bridge::for_generated::SseSerializer) { @@ -861,26 +794,6 @@ impl SseEncode for VectorDB { } } -impl SseEncode - for RustOpaqueMoi>> -{ - // Codec=Sse (Serialization based), see doc to use other codecs - fn sse_encode(self, serializer: &mut flutter_rust_bridge::for_generated::SseSerializer) { - let (ptr, size) = self.sse_encode_raw(); - ::sse_encode(ptr, serializer); - ::sse_encode(size, serializer); - } -} - -impl SseEncode for RustOpaqueMoi> { - // Codec=Sse (Serialization based), see doc to use other codecs - fn sse_encode(self, serializer: &mut flutter_rust_bridge::for_generated::SseSerializer) { - let (ptr, size) = self.sse_encode_raw(); - ::sse_encode(ptr, serializer); - ::sse_encode(size, serializer); - } -} - impl SseEncode for RustOpaqueMoi> { @@ -946,6 +859,14 @@ impl SseEncode for Vec { } } +impl SseEncode for (Vec, Vec) { + // Codec=Sse (Serialization based), see doc to use other codecs + fn sse_encode(self, serializer: &mut flutter_rust_bridge::for_generated::SseSerializer) { + >::sse_encode(self.0, serializer); + >::sse_encode(self.1, serializer); + } +} + impl SseEncode for (usize, usize, usize, usize, usize) { // Codec=Sse (Serialization based), see doc to use other codecs fn sse_encode(self, serializer: &mut flutter_rust_bridge::for_generated::SseSerializer) { @@ -1019,34 +940,6 @@ mod io { flutter_rust_bridge::frb_generated_boilerplate_io!(); - #[unsafe(no_mangle)] - pub extern "C" fn frbgen_photos_rust_arc_increment_strong_count_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerBoxdynError( - ptr: *const std::ffi::c_void, - ) { - MoiArc::>>::increment_strong_count(ptr as _); - } - - #[unsafe(no_mangle)] - pub extern "C" fn frbgen_photos_rust_arc_decrement_strong_count_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerBoxdynError( - ptr: *const std::ffi::c_void, - ) { - MoiArc::>>::decrement_strong_count(ptr as _); - } - - #[unsafe(no_mangle)] - pub extern "C" fn frbgen_photos_rust_arc_increment_strong_count_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerMatches( - ptr: *const std::ffi::c_void, - ) { - MoiArc::>::increment_strong_count(ptr as _); - } - - #[unsafe(no_mangle)] - pub extern "C" fn frbgen_photos_rust_arc_decrement_strong_count_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerMatches( - ptr: *const std::ffi::c_void, - ) { - MoiArc::>::decrement_strong_count(ptr as _); - } - #[unsafe(no_mangle)] pub extern "C" fn frbgen_photos_rust_arc_increment_strong_count_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerVectorDB( ptr: *const std::ffi::c_void, @@ -1086,34 +979,6 @@ mod web { flutter_rust_bridge::frb_generated_boilerplate_web!(); - #[wasm_bindgen] - pub fn rust_arc_increment_strong_count_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerBoxdynError( - ptr: *const std::ffi::c_void, - ) { - MoiArc::>>::increment_strong_count(ptr as _); - } - - #[wasm_bindgen] - pub fn rust_arc_decrement_strong_count_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerBoxdynError( - ptr: *const std::ffi::c_void, - ) { - MoiArc::>>::decrement_strong_count(ptr as _); - } - - #[wasm_bindgen] - pub fn rust_arc_increment_strong_count_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerMatches( - ptr: *const std::ffi::c_void, - ) { - MoiArc::>::increment_strong_count(ptr as _); - } - - #[wasm_bindgen] - pub fn rust_arc_decrement_strong_count_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerMatches( - ptr: *const std::ffi::c_void, - ) { - MoiArc::>::decrement_strong_count(ptr as _); - } - #[wasm_bindgen] pub fn rust_arc_increment_strong_count_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerVectorDB( ptr: *const std::ffi::c_void,