lllv_index/
evidence.rs

1use serde::{Deserialize, Serialize};
2
3#[derive(Clone, Debug, Serialize, Deserialize)]
4pub struct QueryRequest {
5    pub vec: Vec<f32>,
6}
7
8impl QueryRequest {
9    #[must_use]
10    pub fn from_vec(v: &[f32]) -> Self {
11        Self { vec: v.to_vec() }
12    }
13}
14
15#[derive(Clone, Debug, Serialize, Deserialize)]
16pub struct ProofStepSerde {
17    pub sibling_hex: String, // hex(32B)
18    pub sibling_is_right: bool,
19}
20
21#[derive(Clone, Debug, Serialize, Deserialize)]
22pub struct QueryResult {
23    pub id: String,
24    pub score: f32,       // cosine
25    pub leaf_hex: String, // hash da folha (doc)
26    pub path: Vec<ProofStepSerde>,
27}
28
29#[derive(Clone, Debug, Serialize, Deserialize)]
30pub struct QueryEvidence {
31    pub index_pack_cid: String, // root do merkle da doc_table
32    pub results: Vec<QueryResult>,
33    pub dim: u16,
34    // se feature "manifest", opcionalmente poderĂ­amos anexar um SignedFact aqui
35}