Skip to main content

veclite_protocol/
lib.rs

1use serde::{Deserialize, Serialize};
2
3#[derive(Debug, Serialize, Deserialize)]
4pub struct InsertRequest {
5    pub id: String,
6    pub vector: Vec<f32>,
7    pub metadata: Option<serde_json::Value>,
8}
9
10#[derive(Debug, Serialize, Deserialize)]
11pub struct SearchRequest {
12    pub query: Vec<f32>,
13    pub k: usize,
14    pub filter_key: Option<String>,
15    pub filter_value: Option<serde_json::Value>,
16}
17
18#[derive(Debug, Serialize, Deserialize)]
19pub struct SearchResponse {
20    pub results: Vec<SearchResultDto>,
21}
22
23#[derive(Debug, Serialize, Deserialize)]
24pub struct SearchResultDto {
25    pub id: String,
26    pub score: f32,
27    pub metadata: Option<serde_json::Value>,
28}
29
30#[derive(Debug, Serialize, Deserialize)]
31pub struct DeleteRequest {
32    pub id: String,
33}
34
35#[derive(Debug, Serialize, Deserialize)]
36pub struct UpdateRequest {
37    pub id: String,
38    pub vector: Vec<f32>,
39    pub metadata: Option<serde_json::Value>,
40}