use crate::core::NormalizedPath;
use serde::{Deserialize, Serialize};
#[derive(Debug, Clone, PartialEq, Eq, Serialize, Deserialize)]
pub struct PrivateDaemonOwnerStatus {
pub pid: u32,
pub ref_count: u64,
}
#[derive(Debug, Clone, PartialEq, Eq, Serialize, Deserialize)]
pub struct PrivateDaemonStatus {
pub enabled: bool,
pub owners: Vec<PrivateDaemonOwnerStatus>,
pub private_env_keys: Vec<String>,
}
impl PrivateDaemonStatus {
#[must_use]
pub fn shared() -> Self {
Self {
enabled: false,
owners: Vec::new(),
private_env_keys: Vec::new(),
}
}
}
#[derive(Debug, Clone, PartialEq, Serialize, Deserialize)]
pub struct DaemonStatus {
pub version: String,
pub daemon_namespace: String,
pub endpoint: String,
pub private_daemon: PrivateDaemonStatus,
pub artifact_count: u64,
pub cache_size_bytes: u64,
pub metadata_entries: u64,
pub uptime_secs: u64,
pub cache_hits: u64,
pub cache_misses: u64,
pub total_compilations: u64,
pub non_cacheable: u64,
pub compile_errors: u64,
pub compile_errors_cached: u64,
pub time_saved_ms: u64,
pub total_links: u64,
pub link_hits: u64,
pub link_misses: u64,
pub link_non_cacheable: u64,
pub dep_graph_contexts: u64,
pub dep_graph_files: u64,
pub sessions_total: u64,
pub sessions_active: u64,
pub cache_dir: NormalizedPath,
pub dep_graph_version: u32,
pub dep_graph_disk_size: u64,
pub dep_graph_persisted: bool,
}
#[derive(Debug, Clone, PartialEq, Serialize, Deserialize)]
pub struct SessionStats {
pub duration_ms: u64,
pub compilations: u64,
pub hits: u64,
pub misses: u64,
pub non_cacheable: u64,
pub errors: u64,
#[serde(default)]
pub errors_cached: u64,
pub time_saved_ms: u64,
pub unique_sources: u64,
pub bytes_read: u64,
pub bytes_written: u64,
pub phase_profile: Option<PhaseProfileSummary>,
}
#[derive(Debug, Clone, PartialEq, Serialize, Deserialize)]
pub struct PhaseProfileSummary {
pub hit_count: u64,
pub miss_count: u64,
pub parse_args_ns: u64,
pub build_context_ns: u64,
pub hash_source_ns: u64,
pub hash_headers_ns: u64,
pub depgraph_check_ns: u64,
pub request_cache_lookup_ns: u64,
pub cross_root_validate_ns: u64,
pub artifact_lookup_ns: u64,
pub write_output_ns: u64,
pub bookkeeping_ns: u64,
pub total_hit_ns: u64,
pub compiler_exec_ns: u64,
pub include_scan_ns: u64,
pub hash_all_ns: u64,
pub artifact_store_ns: u64,
pub total_miss_ns: u64,
}