use serde::{Deserialize, Serialize};
use super::super::CodeParseStatusCounts;
use super::CodeQueryKind;
#[derive(Debug, Clone, PartialEq, Eq, Serialize, Deserialize)]
pub struct CodeRepositoryStatus {
pub repository_id: String,
pub alias: String,
pub root_path: String,
pub path_filters: Vec<String>,
pub language_filters: Vec<String>,
#[serde(skip_serializing_if = "Option::is_none")]
pub last_indexed_scope_id: Option<String>,
pub last_indexed_commit: Option<String>,
pub tree_hash: Option<String>,
pub state: String,
pub indexed_file_count: usize,
pub symbol_count: usize,
pub reference_count: usize,
pub chunk_count: usize,
pub stale: bool,
#[serde(skip_serializing_if = "Option::is_none")]
pub degraded_reason: Option<String>,
}
#[derive(Debug, Clone, Default, PartialEq, Eq, Serialize, Deserialize)]
pub struct CodeRepositoryRemovalSummary {
pub repository_id: String,
pub aliases_removed: Vec<String>,
pub removed_scope_count: usize,
pub removed_index_task_count: usize,
pub removed_repository_set_member_count: usize,
pub invalidated_repository_set_count: usize,
}
#[derive(Debug, Clone, PartialEq, Eq, Serialize, Deserialize)]
pub struct CodeRepositoryLanguagePreview {
pub language_id: String,
pub file_count: usize,
pub byte_count: usize,
}
#[derive(Debug, Clone, PartialEq, Eq, Serialize, Deserialize)]
pub struct CodeRepositoryLargestFile {
pub path: String,
pub byte_count: usize,
}
#[derive(Debug, Clone, PartialEq, Eq, Serialize, Deserialize)]
pub struct CodeRepositoryExcludedPath {
pub path: String,
pub reason: String,
}
#[derive(Debug, Clone, PartialEq, Eq, Serialize, Deserialize)]
pub struct CodeRepositoryScopePreview {
pub repository_id: String,
pub alias: String,
pub requested_ref: String,
pub resolved_commit_sha: String,
pub tree_hash: String,
pub selected_file_count: usize,
pub selected_byte_count: usize,
pub unsupported_file_count: usize,
pub generated_or_heavy_file_count: usize,
pub expected_degraded_file_count: usize,
pub language_distribution: Vec<CodeRepositoryLanguagePreview>,
pub largest_files: Vec<CodeRepositoryLargestFile>,
pub excluded_paths: Vec<CodeRepositoryExcludedPath>,
}
#[derive(Debug, Clone, Default, PartialEq, Eq, Serialize, Deserialize)]
pub struct CodeRepositoryTotals {
pub repository_count: usize,
pub indexed_file_count: usize,
pub symbol_count: usize,
#[serde(default)]
pub handwritten_symbol_count: usize,
#[serde(default)]
pub generated_symbol_count: usize,
pub reference_count: usize,
pub chunk_count: usize,
pub degraded_file_count: usize,
pub parse_status_counts: CodeParseStatusCounts,
}
#[derive(Debug, Clone, Default, PartialEq, Eq, Serialize, Deserialize)]
pub struct CodeSymbolGenerationCounts {
#[serde(default)]
pub handwritten_symbol_count: usize,
#[serde(default)]
pub generated_symbol_count: usize,
}
#[derive(Debug, Clone, PartialEq, Serialize, Deserialize)]
pub struct CodeRepositoryLatencySample {
pub query: String,
pub kind: CodeQueryKind,
pub result_count: usize,
pub duration_ms: u64,
}
#[derive(Debug, Clone, PartialEq, Serialize, Deserialize)]
pub struct CodeRepositoryReport {
pub repository_id: String,
pub alias: String,
pub root_path: String,
pub path_filters: Vec<String>,
pub language_filters: Vec<String>,
pub resolved_commit_sha: Option<String>,
pub tree_hash: Option<String>,
pub indexed_file_count: usize,
pub symbol_count: usize,
#[serde(default)]
pub handwritten_symbol_count: usize,
#[serde(default)]
pub generated_symbol_count: usize,
pub reference_count: usize,
pub chunk_count: usize,
pub degraded_file_count: usize,
pub resolved_edge_count: usize,
pub ambiguous_edge_count: usize,
pub unresolved_edge_count: usize,
pub degradation_summary: Vec<String>,
pub representative_queries: Vec<String>,
pub latency_samples: Vec<CodeRepositoryLatencySample>,
pub freshness_state: String,
}
#[cfg(test)]
#[path = "repository_status_tests.rs"]
mod tests;