use serde::{Deserialize, Serialize};
use super::Extras;
#[derive(Debug, Clone, Serialize, Deserialize, PartialEq)]
pub struct StoreStatus {
#[serde(default)]
pub total_vectors: u64,
#[serde(default)]
pub deleted_vectors: u64,
#[serde(default)]
pub file_size_bytes: u64,
#[serde(default)]
pub dimension: u32,
#[serde(flatten)]
pub extras: Extras,
}
#[derive(Debug, Clone, Serialize, PartialEq)]
#[serde(deny_unknown_fields)]
pub struct StoreQuery {
pub vector: Vec<f32>,
pub k: u32,
}
#[derive(Debug, Clone, Serialize, Deserialize, PartialEq)]
pub struct StoreQueryResult {
#[serde(default)]
pub results: Vec<StoreQueryHit>,
#[serde(default)]
pub query_ms: f64,
#[serde(flatten)]
pub extras: Extras,
}
#[derive(Debug, Clone, Serialize, Deserialize, PartialEq)]
pub struct StoreQueryHit {
#[serde(default)]
pub id: u64,
#[serde(default)]
pub distance: f32,
#[serde(default)]
pub metadata: serde_json::Value,
#[serde(flatten)]
pub extras: Extras,
}
#[derive(Debug, Clone, Serialize, PartialEq)]
#[serde(deny_unknown_fields)]
pub struct StoreIngestEntry {
pub id: String,
pub values: Vec<f32>,
#[serde(skip_serializing_if = "Option::is_none")]
pub metadata: Option<serde_json::Value>,
}
#[derive(Debug, Clone, Serialize, PartialEq)]
#[serde(deny_unknown_fields)]
pub struct StoreIngest {
pub vectors: Vec<StoreIngestEntry>,
}
#[derive(Debug, Clone, Serialize, Deserialize, PartialEq)]
pub struct StoreIngestAck {
#[serde(default)]
pub ingested: u64,
#[serde(flatten)]
pub extras: Extras,
}