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}