Skip to main content

kbolt_types/
indexing.rs

1use serde::{Deserialize, Serialize};
2
3#[derive(Debug, Clone, Serialize, Deserialize, PartialEq)]
4pub struct UpdateOptions {
5    pub space: Option<String>,
6    pub collections: Vec<String>,
7    pub no_embed: bool,
8    pub dry_run: bool,
9    pub verbose: bool,
10}
11
12#[derive(Debug, Clone, Serialize, Deserialize, PartialEq)]
13pub struct UpdateReport {
14    pub scanned_docs: usize,
15    pub skipped_mtime_docs: usize,
16    pub skipped_hash_docs: usize,
17    pub added_docs: usize,
18    pub updated_docs: usize,
19    pub failed_docs: usize,
20    pub deactivated_docs: usize,
21    pub reactivated_docs: usize,
22    pub reaped_docs: usize,
23    pub embedded_chunks: usize,
24    pub decisions: Vec<UpdateDecision>,
25    pub errors: Vec<FileError>,
26    pub elapsed_ms: u64,
27}
28
29#[derive(Debug, Clone, Serialize, Deserialize, PartialEq, Eq)]
30pub struct UpdateDecision {
31    pub space: String,
32    pub collection: String,
33    pub path: String,
34    pub kind: UpdateDecisionKind,
35    pub detail: Option<String>,
36}
37
38#[derive(Debug, Clone, Serialize, Deserialize, PartialEq, Eq)]
39pub enum UpdateDecisionKind {
40    New,
41    Changed,
42    SkippedMtime,
43    SkippedHash,
44    Ignored,
45    Unsupported,
46    ReadFailed,
47    ExtractFailed,
48    Reactivated,
49    Deactivated,
50}
51
52#[derive(Debug, Clone, Serialize, Deserialize, PartialEq, Eq)]
53pub struct FileError {
54    pub path: String,
55    pub error: String,
56}