| 5376 | } |
| 5377 | |
| 5378 | zvec_error_code_t zvec_vector_query_set_query_vector(zvec_vector_query_t *query, |
| 5379 | const void *data, |
| 5380 | size_t size) { |
| 5381 | if (!query || !data || size == 0) { |
| 5382 | SET_LAST_ERROR(ZVEC_ERROR_INVALID_ARGUMENT, |
| 5383 | "Vector query pointer or data is null/empty"); |
| 5384 | return ZVEC_ERROR_INVALID_ARGUMENT; |
| 5385 | } |
| 5386 | auto *ptr = reinterpret_cast<zvec::SearchQuery *>(query); |
| 5387 | // Copies into VectorClause (not VectorViewClause) because the C API does |
| 5388 | // not require `data` to stay alive after this call returns. |
| 5389 | ptr->target_.set_vector(std::string(static_cast<const char *>(data), size)); |
| 5390 | return ZVEC_OK; |
| 5391 | } |
| 5392 | |
| 5393 | zvec_error_code_t zvec_vector_query_set_filter(zvec_vector_query_t *query, |
| 5394 | const char *filter) { |