Skip to main content

kbolt_types/
doctor.rs

1use std::path::PathBuf;
2
3use serde::{Deserialize, Serialize};
4
5#[derive(Debug, Clone, Serialize, Deserialize, PartialEq, Eq)]
6pub struct DoctorReport {
7    pub setup_status: DoctorSetupStatus,
8    pub config_file: Option<PathBuf>,
9    pub config_dir: Option<PathBuf>,
10    pub cache_dir: Option<PathBuf>,
11    pub ready: bool,
12    pub checks: Vec<DoctorCheck>,
13}
14
15#[derive(Debug, Clone, Copy, Serialize, Deserialize, PartialEq, Eq)]
16#[serde(rename_all = "snake_case")]
17pub enum DoctorSetupStatus {
18    ConfigMissing,
19    ConfigInvalid,
20    NotConfigured,
21    Configured,
22}
23
24#[derive(Debug, Clone, Serialize, Deserialize, PartialEq, Eq)]
25pub struct DoctorCheck {
26    pub id: String,
27    pub scope: String,
28    pub status: DoctorCheckStatus,
29    pub elapsed_ms: u64,
30    pub message: String,
31    pub fix: Option<String>,
32}
33
34#[derive(Debug, Clone, Copy, Serialize, Deserialize, PartialEq, Eq)]
35#[serde(rename_all = "snake_case")]
36pub enum DoctorCheckStatus {
37    Pass,
38    Warn,
39    Fail,
40}