Back to basic error handling

This commit is contained in:
laurenspriem
2025-04-08 17:03:41 +05:30
parent 6d2f53b86c
commit e6ee09ca30
6 changed files with 197 additions and 768 deletions

View File

@@ -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<flutter_rust_bridge::for_generated::RustAutoOpaqueInner<Box < dyn Error >>>
abstract class BoxError implements RustOpaqueInterface {}
// Rust type: RustOpaqueMoi<flutter_rust_bridge::for_generated::RustAutoOpaqueInner<Matches>>
abstract class Matches implements RustOpaqueInterface {}
// Rust type: RustOpaqueMoi<flutter_rust_bridge::for_generated::RustAutoOpaqueInner<VectorDB>>
abstract class VectorDb implements RustOpaqueInterface {
Future<void> addVector({required BigInt key, required List<double> vector});
@@ -39,7 +33,7 @@ abstract class VectorDb implements RustOpaqueInterface {
Future<void> resetIndex();
Future<Matches> searchVectors({
Future<(Uint64List, Float32List)> searchVectors({
required List<double> query,
required BigInt count,
});

View File

@@ -115,7 +115,7 @@ abstract class RustLibApi extends BaseApi {
Future<void> crateApiUsearchApiVectorDbResetIndex({required VectorDb that});
Future<Matches> crateApiUsearchApiVectorDbSearchVectors({
Future<(Uint64List, Float32List)> crateApiUsearchApiVectorDbSearchVectors({
required VectorDb that,
required List<double> query,
required BigInt count,
@@ -125,20 +125,6 @@ abstract class RustLibApi extends BaseApi {
Future<void> 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<Matches> crateApiUsearchApiVectorDbSearchVectors({
Future<(Uint64List, Float32List)> crateApiUsearchApiVectorDbSearchVectors({
required VectorDb that,
required List<double> 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<dynamic>);
}
@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<dynamic>);
}
@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<dynamic>);
}
@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<dynamic>);
}
@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<dynamic>);
}
@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<dynamic>;
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<dynamic> 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<dynamic> 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<Matches> searchVectors({
Future<(Uint64List, Float32List)> searchVectors({
required List<double> query,
required BigInt count,
}) =>

View File

@@ -20,27 +20,9 @@ abstract class RustLibApiImplPlatform extends BaseApiImpl<RustLibWire> {
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<RustLibWire> {
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<RustLibWire> {
@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<RustLibWire> {
@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<RustLibWire> {
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<RustLibWire> {
@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<RustLibWire> {
@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<RustLibWire> {
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<RustLibWire> {
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<ffi.Void> 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<ffi.NativeFunction<ffi.Void Function(ffi.Pointer<ffi.Void>)>>(
'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 Function(ffi.Pointer<ffi.Void>)>();
void
rust_arc_decrement_strong_count_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerBoxdynError(
ffi.Pointer<ffi.Void> 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<ffi.NativeFunction<ffi.Void Function(ffi.Pointer<ffi.Void>)>>(
'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 Function(ffi.Pointer<ffi.Void>)>();
void
rust_arc_increment_strong_count_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerMatches(
ffi.Pointer<ffi.Void> 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<ffi.NativeFunction<ffi.Void Function(ffi.Pointer<ffi.Void>)>>(
'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 Function(ffi.Pointer<ffi.Void>)>();
void
rust_arc_decrement_strong_count_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerMatches(
ffi.Pointer<ffi.Void> 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<ffi.NativeFunction<ffi.Void Function(ffi.Pointer<ffi.Void>)>>(
'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 Function(ffi.Pointer<ffi.Void>)>();
void
rust_arc_increment_strong_count_RustOpaque_flutter_rust_bridgefor_generatedRustAutoOpaqueInnerVectorDB(
ffi.Pointer<ffi.Void> ptr,

View File

@@ -22,27 +22,9 @@ abstract class RustLibApiImplPlatform extends BaseApiImpl<RustLibWire> {
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<RustLibWire> {
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<RustLibWire> {
@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<RustLibWire> {
@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<RustLibWire> {
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<RustLibWire> {
@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<RustLibWire> {
@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<RustLibWire> {
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<RustLibWire> {
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<RustLibWire> {
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,

View File

@@ -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<Self, Box<dyn Error>> {
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<dyn Error>> {
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<dyn Error>> {
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<f32>) -> Result<(), Box<dyn Error>> {
self.ensure_capacity(1)?;
self.index.add(key, vector)?;
self.save_index()?;
Ok(())
pub fn add_vector(&mut self, key: u64, vector: &Vec<f32>) {
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<u64>,
vectors: &Vec<Vec<f32>>,
) -> Result<(), Box<dyn Error>> {
self.ensure_capacity(keys.len())?;
pub fn bulk_add_vectors(&mut self, keys: Vec<u64>, vectors: &Vec<Vec<f32>>) {
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<f32>,
count: usize,
) -> Result<Matches, Box<dyn Error>> {
Ok(self.index.search(query, count)?)
pub fn search_vectors(&self, query: &Vec<f32>, count: usize) -> (Vec<u64>, Vec<f32>) {
let matches = self
.index
.search(query, count)
.expect("Failed to search vectors");
(matches.keys, matches.distances)
}
pub fn get_vector(&self, key: u64) -> Result<Vec<f32>, Box<dyn Error>> {
pub fn get_vector(&self, key: u64) -> Vec<f32> {
let mut vector: Vec<f32> = 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<usize, Box<dyn Error>> {
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<dyn Error>> {
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<dyn Error>> {
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) {

View File

@@ -75,7 +75,7 @@ fn wire__crate__api__usearch_api__VectorDb_add_vector_impl(
let api_vector = <Vec<f32>>::sse_decode(&mut deserializer);
deserializer.end();
move |context| {
transform_result_sse::<_, Box<dyn Error>>((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 = <Vec<Vec<f32>>>::sse_decode(&mut deserializer);
deserializer.end();
move |context| {
transform_result_sse::<_, Box<dyn Error>>((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 = <VectorDB>::sse_decode(&mut deserializer);
deserializer.end();
move |context| {
transform_result_sse::<_, Box<dyn Error>>((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 = <u64>::sse_decode(&mut deserializer);
deserializer.end();
move |context| {
transform_result_sse::<_, Box<dyn Error>>((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 = <String>::sse_decode(&mut deserializer);
let api_dimensions = <usize>::sse_decode(&mut deserializer);
deserializer.end();
transform_result_sse::<_, Box<dyn Error>>((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 = <u64>::sse_decode(&mut deserializer);
deserializer.end();
move |context| {
transform_result_sse::<_, Box<dyn Error>>((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<dyn Error>>((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 = <usize>::sse_decode(&mut deserializer);
deserializer.end();
move |context| {
transform_result_sse::<_, Box<dyn Error>>((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<Box<dyn Error>>
);
flutter_rust_bridge::frb_generated_moi_arc_impl_value!(
flutter_rust_bridge::for_generated::RustAutoOpaqueInner<Matches>
);
flutter_rust_bridge::frb_generated_moi_arc_impl_value!(
flutter_rust_bridge::for_generated::RustAutoOpaqueInner<VectorDB>
);
// Section: dart2rust
impl SseDecode for Box<dyn Error> {
// 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 = <RustOpaqueMoi<
flutter_rust_bridge::for_generated::RustAutoOpaqueInner<Box<dyn Error>>,
>>::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 = <RustOpaqueMoi<
flutter_rust_bridge::for_generated::RustAutoOpaqueInner<Matches>,
>>::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<flutter_rust_bridge::for_generated::RustAutoOpaqueInner<Box<dyn Error>>>
{
// 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 = <usize>::sse_decode(deserializer);
return decode_rust_opaque_moi(inner);
}
}
impl SseDecode for RustOpaqueMoi<flutter_rust_bridge::for_generated::RustAutoOpaqueInner<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 = <usize>::sse_decode(deserializer);
return decode_rust_opaque_moi(inner);
}
}
impl SseDecode
for RustOpaqueMoi<flutter_rust_bridge::for_generated::RustAutoOpaqueInner<VectorDB>>
{
@@ -665,6 +633,15 @@ impl SseDecode for Vec<u8> {
}
}
impl SseDecode for (Vec<u64>, Vec<f32>) {
// 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 = <Vec<u64>>::sse_decode(deserializer);
let mut var_field1 = <Vec<f32>>::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<Box<dyn Error>> {
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<Box<dyn Error>> {}
impl flutter_rust_bridge::IntoIntoDart<FrbWrapper<Box<dyn Error>>> for Box<dyn Error> {
fn into_into_dart(self) -> FrbWrapper<Box<dyn Error>> {
self.into()
}
}
// Codec=Dco (DartCObject based), see doc to use other codecs
impl flutter_rust_bridge::IntoDart for FrbWrapper<Matches> {
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<Matches> {}
impl flutter_rust_bridge::IntoIntoDart<FrbWrapper<Matches>> for Matches {
fn into_into_dart(self) -> FrbWrapper<Matches> {
self.into()
}
}
// Codec=Dco (DartCObject based), see doc to use other codecs
impl flutter_rust_bridge::IntoDart for FrbWrapper<VectorDB> {
fn into_dart(self) -> flutter_rust_bridge::for_generated::DartAbi {
@@ -840,20 +787,6 @@ impl flutter_rust_bridge::IntoIntoDart<FrbWrapper<VectorDB>> for VectorDB {
}
}
impl SseEncode for Box<dyn Error> {
// Codec=Sse (Serialization based), see doc to use other codecs
fn sse_encode(self, serializer: &mut flutter_rust_bridge::for_generated::SseSerializer) {
<RustOpaqueMoi<flutter_rust_bridge::for_generated::RustAutoOpaqueInner<Box < dyn Error >>>>::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) {
<RustOpaqueMoi<flutter_rust_bridge::for_generated::RustAutoOpaqueInner<Matches>>>::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<flutter_rust_bridge::for_generated::RustAutoOpaqueInner<Box<dyn Error>>>
{
// 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();
<usize>::sse_encode(ptr, serializer);
<i32>::sse_encode(size, serializer);
}
}
impl SseEncode for RustOpaqueMoi<flutter_rust_bridge::for_generated::RustAutoOpaqueInner<Matches>> {
// 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();
<usize>::sse_encode(ptr, serializer);
<i32>::sse_encode(size, serializer);
}
}
impl SseEncode
for RustOpaqueMoi<flutter_rust_bridge::for_generated::RustAutoOpaqueInner<VectorDB>>
{
@@ -946,6 +859,14 @@ impl SseEncode for Vec<u8> {
}
}
impl SseEncode for (Vec<u64>, Vec<f32>) {
// Codec=Sse (Serialization based), see doc to use other codecs
fn sse_encode(self, serializer: &mut flutter_rust_bridge::for_generated::SseSerializer) {
<Vec<u64>>::sse_encode(self.0, serializer);
<Vec<f32>>::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::<flutter_rust_bridge::for_generated::RustAutoOpaqueInner<Box < dyn Error >>>::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::<flutter_rust_bridge::for_generated::RustAutoOpaqueInner<Box < dyn Error >>>::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::<flutter_rust_bridge::for_generated::RustAutoOpaqueInner<Matches>>::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::<flutter_rust_bridge::for_generated::RustAutoOpaqueInner<Matches>>::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::<flutter_rust_bridge::for_generated::RustAutoOpaqueInner<Box < dyn Error >>>::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::<flutter_rust_bridge::for_generated::RustAutoOpaqueInner<Box < dyn Error >>>::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::<flutter_rust_bridge::for_generated::RustAutoOpaqueInner<Matches>>::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::<flutter_rust_bridge::for_generated::RustAutoOpaqueInner<Matches>>::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,