Generated by DocSentinel
pub fn init(path: &Path, force: bool) -> Result<()>Initialize DocSentinel in a repository
Lines 11-34
pub fn scan(
path: &Path,
full: bool,
range: Option<&str>,
uncommitted: bool,
) -> Result<Vec<DriftEvent>>Scan the repository for drift
Lines 37-190
pub fn status(path: &Path, _all: bool, severity: Option<&str>) -> Result<()>Show status of drift issues
Lines 193-251
pub fn fix(path: &Path, issue_id: &str, content: Option<&str>, commit: bool) -> Result<()>Apply a fix to a drift issue
Lines 254-309
pub fn ignore(path: &Path, issue_id: &str, reason: Option<&str>) -> Result<()>Ignore a drift issue
Lines 312-331
pub fn hooks(path: &Path, install: bool, uninstall: bool) -> Result<()>Install or manage git hooks
Lines 334-378
pub fn print_events_json(events: &[DriftEvent]) -> Result<()>Print events in JSON format
Lines 381-385
pub fn print_events_text(events: &[DriftEvent])Print events in text format
Lines 388-413
pub fn generate(
path: &Path,
readme: bool,
_docs: bool,
output: Option<&str>,
include_private: bool,
) -> Result<()>Generate documentation from code chunks
Lines 416-454
Lines 16-31
Lines 35-68
Lines 72-75
Lines 79-87
Lines 91-111
Lines 115-127
Lines 131-135
Lines 139-154
Lines 158-169
Lines 173-185
Lines 189-197
Lines 201-217
Lines 221-232
Lines 236-252
pub fn parse_args() -> SelfParse command line arguments
Lines 256-258
pub fn parse_args() -> SelfParse command line arguments
Lines 256-258
Lines 18-29
Main drift detection engine
Lines 44-48
pub fn new() -> SelfCreate a new drift detector with default configuration
Lines 52-58
pub fn new() -> SelfCreate a new drift detector with default configuration
Lines 52-58
pub fn with_config(config: DriftConfig) -> SelfCreate with custom configuration
Lines 61-67
pub fn with_config(config: DriftConfig) -> SelfCreate with custom configuration
Lines 61-67
pub fn detect_code_drift(
&self,
old_chunks: &HashMap<String, CodeChunk>,
new_chunks: &HashMap<String, CodeChunk>,
doc_chunks: &[DocChunk],
db: &Database,
) -> Result<Vec<DriftEvent>>Detect drift for changed code chunks
Lines 70-129
pub fn detect_code_drift(
&self,
old_chunks: &HashMap<String, CodeChunk>,
new_chunks: &HashMap<String, CodeChunk>,
doc_chunks: &[DocChunk],
db: &Database,
) -> Result<Vec<DriftEvent>>Detect drift for changed code chunks
Lines 70-129
pub fn detect_doc_drift(
&self,
old_chunks: &HashMap<String, DocChunk>,
new_chunks: &HashMap<String, DocChunk>,
code_chunks: &[CodeChunk],
) -> Result<Vec<DriftEvent>>Detect drift for changed doc chunks
Lines 132-177
pub fn detect_doc_drift(
&self,
old_chunks: &HashMap<String, DocChunk>,
new_chunks: &HashMap<String, DocChunk>,
code_chunks: &[CodeChunk],
) -> Result<Vec<DriftEvent>>Detect drift for changed doc chunks
Lines 132-177
pub fn compute_all_similarities(
&self,
code_chunks: &[CodeChunk],
doc_chunks: &[DocChunk],
) -> Vec<SimilarityResult>Get similarity results for all code-doc pairs
Lines 306-331
pub fn compute_all_similarities(
&self,
code_chunks: &[CodeChunk],
doc_chunks: &[DocChunk],
) -> Vec<SimilarityResult>Get similarity results for all code-doc pairs
Lines 306-331
pub fn find_best_matches(
&self,
code_chunk: &CodeChunk,
doc_chunks: &[DocChunk],
limit: usize,
) -> Vec<(DocChunk, f64)>Find the best matching doc chunks for a code chunk
Lines 334-359
pub fn find_best_matches(
&self,
code_chunk: &CodeChunk,
doc_chunks: &[DocChunk],
limit: usize,
) -> Vec<(DocChunk, f64)>Find the best matching doc chunks for a code chunk
Lines 334-359
Lines 10-25
Local embedding provider using Ollama or compatible API
Lines 28-37
pub fn new(endpoint: &str, model: &str) -> SelfCreate a new local embedding provider
Lines 41-48
pub fn ollama(model: &str) -> SelfCreate with Ollama defaults
Lines 51-53
pub fn ollama(model: &str) -> SelfCreate with Ollama defaults
Lines 51-53
pub fn with_dimension(mut self, dim: usize) -> SelfSet the embedding dimension
Lines 56-59
pub async fn is_available(&self) -> boolCheck if the embedding service is available
Lines 62-65
pub async fn is_available(&self) -> boolCheck if the embedding service is available
Lines 62-65
OpenAI-compatible embedding provider
Lines 133-144
pub fn new(endpoint: &str, model: &str, api_key: Option<&str>) -> SelfCreate a new OpenAI-compatible embedding provider
Lines 148-156
pub fn with_dimension(mut self, dim: usize) -> SelfSet the embedding dimension
Lines 159-162
pub fn with_dimension(mut self, dim: usize) -> SelfSet the embedding dimension
Lines 159-162
Mock embedding provider for testing
Lines 235-237
pub fn new(dimension: usize) -> SelfCreate a new mock embedding provider
Lines 241-243
pub fn new(dimension: usize) -> SelfCreate a new mock embedding provider
Lines 241-243
Synchronous embedding trait for simpler usage
Lines 275-286
Lines 20-29
Lines 44-53
Lines 68-87
pub fn new(
severity: DriftSeverity,
description: &str,
evidence: &str,
confidence: f64,
) -> SelfCreate a new drift event
Lines 91-108
pub fn new(
severity: DriftSeverity,
description: &str,
evidence: &str,
confidence: f64,
) -> SelfCreate a new drift event
Lines 91-108
pub fn with_code_chunk(mut self, chunk_id: &str) -> SelfAdd a related code chunk
Lines 111-114
pub fn with_code_chunk(mut self, chunk_id: &str) -> SelfAdd a related code chunk
Lines 111-114
pub fn with_doc_chunk(mut self, chunk_id: &str) -> SelfAdd a related doc chunk
Lines 117-120
pub fn with_doc_chunk(mut self, chunk_id: &str) -> SelfAdd a related doc chunk
Lines 117-120
pub fn with_suggested_fix(mut self, fix: &str) -> SelfSet the suggested fix
Lines 123-126
pub fn with_suggested_fix(mut self, fix: &str) -> SelfSet the suggested fix
Lines 123-126
Lines 131-140
pub fn has_significant_drop(&self, threshold: f64) -> boolCheck if similarity dropped significantly
Lines 144-150
pub fn has_significant_drop(&self, threshold: f64) -> boolCheck if similarity dropped significantly
Lines 144-150
pub fn cosine_similarity(a: &[f32], b: &[f32]) -> f64Compute cosine similarity between two vectors
Lines 154-172
Trait for drift detection rules
Lines 10-29
Collection of hard drift rules
Lines 32-34
pub fn new() -> SelfCreate default hard drift rules
Lines 38-47
pub fn check_code_change(
&self,
old_chunk: Option<&CodeChunk>,
new_chunk: Option<&CodeChunk>,
related_docs: &[&DocChunk],
) -> Vec<DriftEvent>Check all rules against a code change
Lines 50-60
pub fn check_doc_change(
&self,
old_chunk: Option<&DocChunk>,
new_chunk: Option<&DocChunk>,
related_code: &[&CodeChunk],
) -> Vec<DriftEvent>Check all rules against a doc change
Lines 63-73
Collection of soft drift rules
Lines 83-85
pub fn new() -> SelfCreate default soft drift rules
Lines 89-93
pub fn new() -> SelfCreate default soft drift rules
Lines 89-93
pub fn check_code_change(
&self,
old_chunk: Option<&CodeChunk>,
new_chunk: Option<&CodeChunk>,
related_docs: &[&DocChunk],
) -> Vec<DriftEvent>Check all rules against a code change
Lines 96-106
Lines 17-20
pub fn from_extension(ext: &str) -> Option<Self>Detect language from file extension
Lines 24-30
pub fn from_extension(ext: &str) -> Option<Self>Detect language from file extension
Lines 24-30
pub fn tree_sitter_language(&self) -> tree_sitter::LanguageGet the tree-sitter language for this language
Lines 33-38
pub fn tree_sitter_language(&self) -> tree_sitter::LanguageGet the tree-sitter language for this language
Lines 33-38
pub fn extension(&self) -> &'static strGet file extension for this language
Lines 41-46
pub fn extension(&self) -> &'static strGet file extension for this language
Lines 41-46
Lines 60-88
pub fn new(
file_path: &str,
symbol_name: &str,
symbol_type: SymbolType,
content: &str,
language: Language,
start_line: usize,
end_line: usize,
) -> SelfCreate a new code chunk
Lines 110-137
pub fn embedding_text(&self) -> StringGet a summary suitable for embedding
Lines 140-160
pub fn embedding_text(&self) -> StringGet a summary suitable for embedding
Lines 140-160
Lines 166-176
Extracts code chunks from source files
Lines 195-198
pub fn new() -> Result<Self>Create a new code extractor
Lines 202-217
pub fn new() -> Result<Self>Create a new code extractor
Lines 202-217
pub fn extract_file(&mut self, path: &Path, content: &str) -> Result<Vec<CodeChunk>>Extract chunks from a file
Lines 220-230
pub fn extract_file(&mut self, path: &Path, content: &str) -> Result<Vec<CodeChunk>>Extract chunks from a file
Lines 220-230
Lines 15-22
Lines 45-67
pub fn new(
file_path: &str,
heading_path: Vec<String>,
heading: &str,
level: HeadingLevel,
content: &str,
start_line: usize,
end_line: usize,
) -> SelfCreate a new doc chunk
Lines 89-114
pub fn embedding_text(&self) -> StringGet a summary suitable for embedding
Lines 117-123
pub fn embedding_text(&self) -> StringGet a summary suitable for embedding
Lines 117-123
pub fn full_path(&self) -> StringGet the full heading path as a string
Lines 126-128
pub fn full_path(&self) -> StringGet the full heading path as a string
Lines 126-128
Extracts doc chunks from Markdown files
Lines 132-135
pub fn new() -> SelfCreate a new doc extractor
Lines 139-143
pub fn new() -> SelfCreate a new doc extractor
Lines 139-143
pub fn with_min_length(mut self, length: usize) -> SelfSet minimum section length
Lines 146-149
pub fn with_min_length(mut self, length: usize) -> SelfSet minimum section length
Lines 146-149
pub fn extract_file(&self, path: &Path, content: &str) -> Result<Vec<DocChunk>>Extract chunks from a Markdown file
Lines 152-190
pub fn extract_file(&self, path: &Path, content: &str) -> Result<Vec<DocChunk>>Extract chunks from a Markdown file
Lines 152-190
pub fn extract_code_blocks(content: &str) -> Vec<CodeBlock>Extract code blocks from Markdown content
Lines 318-358
Lines 362-367
pub fn content_hash(content: &str) -> StringCompute a stable hash for content
Lines 16-20
Common trait for all extractable chunks
Lines 23-35
pub fn test_drift_detection() -> boolThis function does something completely different now
Lines 27-27
Lines 8-13
Lines 17-28
LLM client for generating analysis and fixes
Lines 43-46
pub fn new(config: LlmConfig) -> SelfCreate a new LLM client
Lines 50-55
pub fn ollama(model: &str) -> SelfCreate with Ollama defaults
Lines 58-64
pub fn ollama(model: &str) -> SelfCreate with Ollama defaults
Lines 58-64
pub fn openai_compatible(endpoint: &str, model: &str, api_key: Option<&str>) -> SelfCreate with OpenAI-compatible endpoint
Lines 67-74
pub fn openai_compatible(endpoint: &str, model: &str, api_key: Option<&str>) -> SelfCreate with OpenAI-compatible endpoint
Lines 67-74
pub async fn is_available(&self) -> boolCheck if the LLM service is available
Lines 77-87
pub async fn is_available(&self) -> boolCheck if the LLM service is available
Lines 77-87
pub async fn complete(&self, prompt: &str) -> Result<LlmResponse>Generate a completion
Lines 90-96
pub async fn complete_with_retry(
&self,
prompt: &str,
max_retries: usize,
) -> Result<LlmResponse>Generate completion with retry
Lines 188-212
pub async fn complete_with_retry(
&self,
prompt: &str,
max_retries: usize,
) -> Result<LlmResponse>Generate completion with retry
Lines 188-212
Mock LLM client for testing
Lines 272-274
pub fn new() -> SelfCreate a new mock client
Lines 278-282
pub fn new() -> SelfCreate a new mock client
Lines 278-282
pub fn add_response(&mut self, prompt_contains: &str, response: &str)Add a mock response
Lines 285-288
pub fn add_response(&mut self, prompt_contains: &str, response: &str)Add a mock response
Lines 285-288
pub fn complete(&self, prompt: &str) -> Result<LlmResponse>Generate a mock completion
Lines 291-306
pub fn complete(&self, prompt: &str) -> Result<LlmResponse>Generate a mock completion
Lines 291-306
Lines 21-30
Lines 34-43
pub fn new(
drift_event: DriftEvent,
old_code: Option<CodeChunk>,
new_code: Option<CodeChunk>,
doc_chunk: DocChunk,
) -> SelfCreate a new analysis request
Lines 47-59
pub fn to_prompt(&self) -> StringGenerate the prompt for this request
Lines 62-116
pub fn to_prompt(&self) -> StringGenerate the prompt for this request
Lines 62-116
Analyzer that uses LLM for drift analysis
Lines 120-122
pub fn new(client: LlmClient) -> SelfCreate a new drift analyzer
Lines 126-128
pub fn new(client: LlmClient) -> SelfCreate a new drift analyzer
Lines 126-128
pub async fn analyze(&self, request: AnalysisRequest) -> Result<AnalysisResult>Analyze a drift event
Lines 131-140
pub async fn analyze(&self, request: AnalysisRequest) -> Result<AnalysisResult>Analyze a drift event
Lines 131-140
pub async fn analyze_batch(
&self,
requests: Vec<AnalysisRequest>,
) -> Result<Vec<AnalysisResult>>Analyze multiple drift events
Lines 143-166
pub async fn analyze_batch(
&self,
requests: Vec<AnalysisRequest>,
) -> Result<Vec<AnalysisResult>>Analyze multiple drift events
Lines 143-166
pub fn generate_simple_fix(
_drift_event: &DriftEvent,
old_code: Option<&CodeChunk>,
new_code: Option<&CodeChunk>,
doc_chunk: &DocChunk,
) -> Option<String>Generate a fix suggestion without LLM (rule-based)
Lines 170-201
Prompt for analyzing drift
Lines 7-7
pub fn generate(
drift_event: &DriftEvent,
old_code: Option<&CodeChunk>,
new_code: Option<&CodeChunk>,
doc_chunk: &DocChunk,
) -> StringGenerate a prompt for drift analysis
Lines 11-74
Prompt for generating fixes
Lines 78-78
pub fn generate(
drift_event: &DriftEvent,
new_code: &CodeChunk,
doc_chunk: &DocChunk,
) -> StringGenerate a prompt for fix generation
Lines 82-120
pub fn generate(
drift_event: &DriftEvent,
new_code: &CodeChunk,
doc_chunk: &DocChunk,
) -> StringGenerate a prompt for fix generation
Lines 82-120
pub fn generate_simple_explanation(
drift_event: &DriftEvent,
old_code: Option<&CodeChunk>,
new_code: Option<&CodeChunk>,
) -> StringGenerate a simple explanation without LLM
Lines 189-228
Lines 8-15
pub fn is_code(&self) -> boolCheck if this is a code file
Lines 19-21
pub fn is_code(&self) -> boolCheck if this is a code file
Lines 19-21
pub fn is_documentation(&self) -> boolCheck if this is a documentation file
Lines 24-26
pub fn is_documentation(&self) -> boolCheck if this is a documentation file
Lines 24-26
Lines 31-40
Lines 55-64
pub fn new(commit: Option<String>, files: Vec<ChangedFile>) -> SelfCreate a new change set
Lines 68-75
pub fn new(commit: Option<String>, files: Vec<ChangedFile>) -> SelfCreate a new change set
Lines 68-75
pub fn code_files(&self) -> impl Iterator<Item = &ChangedFile>Get all code files in this change
Lines 78-80
pub fn code_files(&self) -> impl Iterator<Item = &ChangedFile>Get all code files in this change
Lines 78-80
pub fn doc_files(&self) -> impl Iterator<Item = &ChangedFile>Get all documentation files in this change
Lines 83-85
pub fn doc_files(&self) -> impl Iterator<Item = &ChangedFile>Get all documentation files in this change
Lines 83-85
pub fn has_mixed_changes(&self) -> boolCheck if this change includes both code and documentation
Lines 88-92
pub fn has_mixed_changes(&self) -> boolCheck if this change includes both code and documentation
Lines 88-92
Lines 9-37
Lines 41-58
pub fn load_or_default(repo_root: &Path) -> Result<Self>Load configuration from the repository or return defaults
Lines 129-141
pub fn load_or_default(repo_root: &Path) -> Result<Self>Load configuration from the repository or return defaults
Lines 129-141
pub fn save(&self, repo_root: &Path) -> Result<()>Save configuration to the repository
Lines 144-155
pub fn save(&self, repo_root: &Path) -> Result<()>Save configuration to the repository
Lines 144-155
pub fn should_ignore(&self, path: &str) -> boolCheck if a path should be ignored
Lines 158-162
pub fn should_ignore(&self, path: &str) -> boolCheck if a path should be ignored
Lines 158-162
pub fn is_doc_file(&self, path: &str) -> boolCheck if a path is a documentation file
Lines 165-169
pub fn is_doc_file(&self, path: &str) -> boolCheck if a path is a documentation file
Lines 165-169
pub fn is_code_file(&self, path: &str) -> boolCheck if a path is a code file
Lines 172-176
pub fn is_code_file(&self, path: &str) -> boolCheck if a path is a code file
Lines 172-176
Represents a Git repository being analyzed
Lines 19-26
pub fn open<P: AsRef<Path>>(path: P) -> Result<Self>Open an existing repository at the given path
Lines 30-43
pub fn open<P: AsRef<Path>>(path: P) -> Result<Self>Open an existing repository at the given path
Lines 30-43
pub fn root(&self) -> &PathGet the repository root path
Lines 46-48
pub fn root(&self) -> &PathGet the repository root path
Lines 46-48
pub fn sentinel_dir(&self) -> PathBufGet the path to the .docsentinel directory
Lines 51-53
pub fn sentinel_dir(&self) -> PathBufGet the path to the .docsentinel directory
Lines 51-53
pub fn init_sentinel_dir(&self) -> Result<PathBuf>Initialize the .docsentinel directory if it doesn't exist
Lines 56-63
pub fn init_sentinel_dir(&self) -> Result<PathBuf>Initialize the .docsentinel directory if it doesn't exist
Lines 56-63
pub fn head_commit(&self) -> Result<String>Get the current HEAD commit hash
Lines 66-72
pub fn head_commit(&self) -> Result<String>Get the current HEAD commit hash
Lines 66-72
pub fn changes_between(&self, from: Option<&str>, to: &str) -> Result<Vec<ChangedFile>>Get changes between two commits
Lines 75-147
pub fn changes_between(&self, from: Option<&str>, to: &str) -> Result<Vec<ChangedFile>>Get changes between two commits
Lines 75-147
pub fn uncommitted_changes(&self) -> Result<Vec<ChangedFile>>Get uncommitted changes in the working directory
Lines 150-191
pub fn uncommitted_changes(&self) -> Result<Vec<ChangedFile>>Get uncommitted changes in the working directory
Lines 150-191
pub fn read_file_at_commit(&self, path: &Path, commit: &str) -> Result<Option<String>>Read file content at a specific commit
Lines 233-263
pub fn read_file_at_commit(&self, path: &Path, commit: &str) -> Result<Option<String>>Read file content at a specific commit
Lines 233-263
pub fn read_file_current(&self, path: &Path) -> Result<Option<String>>Read current file content from working directory
Lines 266-274
pub fn read_file_current(&self, path: &Path) -> Result<Option<String>>Read current file content from working directory
Lines 266-274
pub fn config(&self) -> &RepoConfigGet the repository configuration
Lines 277-279
pub fn config(&self) -> &RepoConfigGet the repository configuration
Lines 277-279
pub fn list_files(&self, file_type: Option<FileType>) -> Result<Vec<PathBuf>>List all files in the repository matching certain criteria
Lines 282-307
pub fn list_files(&self, file_type: Option<FileType>) -> Result<Vec<PathBuf>>List all files in the repository matching certain criteria
Lines 282-307
Lines 312-317
Database connection wrapper
Lines 20-22
pub fn open<P: AsRef<Path>>(path: P) -> Result<Self>Open or create a database at the given path
Lines 26-34
pub fn open<P: AsRef<Path>>(path: P) -> Result<Self>Open or create a database at the given path
Lines 26-34
pub fn open_in_memory() -> Result<Self>Open an in-memory database (for testing)
Lines 37-44
pub fn open_in_memory() -> Result<Self>Open an in-memory database (for testing)
Lines 37-44
pub fn get_last_scan_commit(&self) -> Result<Option<String>>Get the last scanned commit hash
Lines 57-69
pub fn get_last_scan_commit(&self) -> Result<Option<String>>Get the last scanned commit hash
Lines 57-69
pub fn set_last_scan_commit(&self, commit: &str) -> Result<()>Update the last scanned commit hash
Lines 72-80
pub fn set_last_scan_commit(&self, commit: &str) -> Result<()>Update the last scanned commit hash
Lines 72-80
pub fn upsert_code_chunk(&self, chunk: &CodeChunk) -> Result<()>Insert or update a code chunk
Lines 85-133
pub fn upsert_code_chunk(&self, chunk: &CodeChunk) -> Result<()>Insert or update a code chunk
Lines 85-133
pub fn get_code_chunk(&self, id: &str) -> Result<Option<CodeChunk>>Get a code chunk by ID
Lines 136-169
pub fn get_code_chunk(&self, id: &str) -> Result<Option<CodeChunk>>Get a code chunk by ID
Lines 136-169
pub fn get_code_chunks_for_file(&self, file_path: &str) -> Result<Vec<CodeChunk>>Get all code chunks for a file
Lines 172-206
pub fn get_code_chunks_for_file(&self, file_path: &str) -> Result<Vec<CodeChunk>>Get all code chunks for a file
Lines 172-206
pub fn get_all_code_chunks_with_embeddings(&self) -> Result<Vec<CodeChunk>>Get all code chunks with embeddings
Lines 209-243
pub fn get_all_code_chunks_with_embeddings(&self) -> Result<Vec<CodeChunk>>Get all code chunks with embeddings
Lines 209-243
pub fn get_all_code_chunks(&self) -> Result<Vec<CodeChunk>>Get all code chunks
Lines 246-281
pub fn get_all_code_chunks(&self) -> Result<Vec<CodeChunk>>Get all code chunks
Lines 246-281
pub fn delete_code_chunks_for_file(&self, file_path: &str) -> Result<usize>Delete code chunks for a file
Lines 284-294
pub fn delete_code_chunks_for_file(&self, file_path: &str) -> Result<usize>Delete code chunks for a file
Lines 284-294
pub fn upsert_doc_chunk(&self, chunk: &DocChunk) -> Result<()>Insert or update a doc chunk
Lines 299-342
pub fn upsert_doc_chunk(&self, chunk: &DocChunk) -> Result<()>Insert or update a doc chunk
Lines 299-342
pub fn get_doc_chunk(&self, id: &str) -> Result<Option<DocChunk>>Get a doc chunk by ID
Lines 345-374
pub fn get_doc_chunk(&self, id: &str) -> Result<Option<DocChunk>>Get a doc chunk by ID
Lines 345-374
pub fn get_doc_chunks_for_file(&self, file_path: &str) -> Result<Vec<DocChunk>>Get all doc chunks for a file
Lines 377-409
pub fn get_doc_chunks_for_file(&self, file_path: &str) -> Result<Vec<DocChunk>>Get all doc chunks for a file
Lines 377-409
pub fn get_all_doc_chunks_with_embeddings(&self) -> Result<Vec<DocChunk>>Get all doc chunks with embeddings
Lines 412-444
pub fn get_all_doc_chunks_with_embeddings(&self) -> Result<Vec<DocChunk>>Get all doc chunks with embeddings
Lines 412-444
pub fn delete_doc_chunks_for_file(&self, file_path: &str) -> Result<usize>Delete doc chunks for a file
Lines 447-457
pub fn delete_doc_chunks_for_file(&self, file_path: &str) -> Result<usize>Delete doc chunks for a file
Lines 447-457
pub fn insert_drift_event(&self, event: &DriftEvent) -> Result<()>Insert a drift event
Lines 462-490
pub fn insert_drift_event(&self, event: &DriftEvent) -> Result<()>Insert a drift event
Lines 462-490
pub fn get_unresolved_drift_events(&self) -> Result<Vec<DriftEvent>>Get all unresolved drift events
Lines 493-527
pub fn get_unresolved_drift_events(&self) -> Result<Vec<DriftEvent>>Get all unresolved drift events
Lines 493-527
pub fn update_drift_event_status(&self, id: &str, status: &str) -> Result<()>Update drift event status
Lines 530-539
pub fn update_drift_event_status(&self, id: &str, status: &str) -> Result<()>Update drift event status
Lines 530-539
pub fn get_drift_event(&self, id: &str) -> Result<Option<DriftEvent>>Get drift event by ID
Lines 542-572
pub fn get_drift_event(&self, id: &str) -> Result<Option<DriftEvent>>Get drift event by ID
Lines 542-572
pub fn get_stats(&self) -> Result<DatabaseStats>Get database statistics
Lines 577-602
pub fn get_stats(&self) -> Result<DatabaseStats>Get database statistics
Lines 577-602
Lines 607-612
Lines 12-23
Application state
Lines 26-41
Confirmation dialog
Lines 58-62
Main TUI application
Lines 65-78
pub fn new(path: &Path) -> Result<Self>Create a new app instance
Lines 82-104
pub fn new(path: &Path) -> Result<Self>Create a new app instance
Lines 82-104
pub fn handle_key(&mut self, key: KeyEvent) -> Result<bool>Handle a key event
Lines 107-126
pub fn handle_key(&mut self, key: KeyEvent) -> Result<bool>Handle a key event
Lines 107-126
pub fn selected_event(&self) -> Option<&DriftEvent>Get the currently selected event
Lines 338-340
pub fn selected_event(&self) -> Option<&DriftEvent>Get the currently selected event
Lines 338-340
pub fn severity_color(severity: DriftSeverity) -> ratatui::style::ColorGet severity color
Lines 343-351
pub fn severity_color(severity: DriftSeverity) -> ratatui::style::ColorGet severity color
Lines 343-351
pub fn run(path: &Path) -> Result<()>Run the TUI application
Lines 26-50
pub fn draw(f: &mut Frame, app: &App)Draw the UI
Lines 14-32
A diff view widget showing side-by-side comparison
Lines 12-17
pub fn new(
left_title: &'a str,
left_content: &'a str,
right_title: &'a str,
right_content: &'a str,
) -> SelfLines 20-32
A severity badge widget
Lines 79-81
pub fn new(severity: crate::drift::DriftSeverity) -> SelfLines 84-86
pub fn to_span(&self) -> Span<'static>Lines 88-105
pub fn to_span(&self) -> Span<'static>Lines 88-105
A progress bar widget
Lines 109-112
pub fn new(progress: f64) -> SelfLines 115-120
pub fn with_label(mut self, label: &str) -> SelfLines 122-125
pub fn with_label(mut self, label: &str) -> SelfLines 122-125
A code block widget with syntax highlighting hints
Lines 169-173
pub fn new(content: &'a str) -> SelfLines 176-182
pub fn language(mut self, lang: &'a str) -> SelfLines 184-187
pub fn language(mut self, lang: &'a str) -> SelfLines 184-187
pub fn line_numbers(mut self, show: bool) -> SelfLines 189-192
pub fn line_numbers(mut self, show: bool) -> SelfLines 189-192
A key hint widget for showing keyboard shortcuts
Lines 235-237
pub fn new(hints: Vec<(&'a str, &'a str)>) -> SelfLines 240-242
pub fn new(hints: Vec<(&'a str, &'a str)>) -> SelfLines 240-242