kbolt-types 0.1.6

Shared request and response types for kbolt
Documentation
use serde::{Deserialize, Serialize};

#[derive(Debug, Clone, Serialize, Deserialize, PartialEq)]
pub struct UpdateOptions {
    pub space: Option<String>,
    pub collections: Vec<String>,
    pub no_embed: bool,
    pub dry_run: bool,
    pub verbose: bool,
}

#[derive(Debug, Clone, Serialize, Deserialize, PartialEq)]
pub struct UpdateReport {
    pub scanned_docs: usize,
    pub skipped_mtime_docs: usize,
    pub skipped_hash_docs: usize,
    pub added_docs: usize,
    pub updated_docs: usize,
    pub failed_docs: usize,
    pub deactivated_docs: usize,
    pub reactivated_docs: usize,
    pub reaped_docs: usize,
    pub embedded_chunks: usize,
    pub decisions: Vec<UpdateDecision>,
    pub errors: Vec<FileError>,
    pub elapsed_ms: u64,
}

#[derive(Debug, Clone, Serialize, Deserialize, PartialEq, Eq)]
pub struct UpdateDecision {
    pub space: String,
    pub collection: String,
    pub path: String,
    pub kind: UpdateDecisionKind,
    pub detail: Option<String>,
}

#[derive(Debug, Clone, Serialize, Deserialize, PartialEq, Eq)]
pub enum UpdateDecisionKind {
    New,
    Changed,
    SkippedMtime,
    SkippedHash,
    Ignored,
    Unsupported,
    ReadFailed,
    ExtractFailed,
    Reactivated,
    Deactivated,
}

#[derive(Debug, Clone, Serialize, Deserialize, PartialEq, Eq)]
pub struct FileError {
    pub path: String,
    pub error: String,
}