getVector method
Get a FP32 vector field value.
Implementation
Float32List? getVector(String name) {
if (!hasField(name) || isFieldNull(name)) return null;
final namePtr = name.toNativeUtf8().cast<Char>();
final valuePtr = calloc<Pointer<Void>>();
final sizePtr = calloc<Size>();
try {
final rc = _b.zvec_doc_get_field_value_pointer(
_ptr,
namePtr,
DataType.vectorFp32.value,
valuePtr,
sizePtr,
);
if (rc != zvec_error_code_t.ZVEC_OK) return null;
if (valuePtr.value == nullptr) return null;
final length = sizePtr.value ~/ sizeOf<Float>();
final floatPtr = valuePtr.value.cast<Float>();
final result = Float32List(length);
for (var i = 0; i < length; i++) {
result[i] = floatPtr[i];
}
return result;
} finally {
calloc.free(namePtr);
calloc.free(valuePtr);
calloc.free(sizePtr);
}
}