Expand description
§Vault Manager
Vault operations, file watching, and atomic operations.
This crate provides the core vault management functionality including:
- File reading and writing with error handling
- Real-time file system watching
- Atomic operations with transaction support
- Edit engine for advanced file modifications
- Diff-based updates with fuzzy matching
§Quick Start
use turbovault_vault::VaultManager;
use turbovault_core::ServerConfig;
use std::path::PathBuf;
// Create a vault manager
let config = ServerConfig::default();
let manager = VaultManager::new(config)?;
// Read a file
let path = PathBuf::from("notes/example.md");
let _vault_path = manager.vault_path();
§Core Modules
§Manager
manager::VaultManager is the primary interface for vault operations:
- Read/write files
- Query metadata
- List files
- Traverse directory structure
§File Watching
watcher::VaultWatcher monitors the vault for changes:
- File creates, modifies, deletes
- Directory changes
- Debounced events
- Configurable filtering
Example:
use turbovault_vault::WatcherConfig;
let _config = WatcherConfig::default();
// Watcher runs in background, emit events via channel§Atomic Operations
atomic::AtomicFileOps ensures data integrity:
- Atomic writes (write-to-temp then rename)
- Transaction support
- Rollback on failure
§Edit Engine
edit::EditEngine provides advanced editing capabilities:
- Search and replace with context
- Block-based edits
- Diff-based fuzzy matching
- Hash verification
Example:
use turbovault_vault::EditEngine;
let _edit_engine = EditEngine::new();
// Use edit_engine for advanced file modifications§Thread Safety
All components are thread-safe:
VaultManagerusesArc<RwLock<...>>internally- Safe to share across async tasks
- Concurrent read access with exclusive write access
§Error Handling
All operations return turbovault_core::Result<T>:
- File not found errors
- Permission errors
- Invalid paths
- Encoding errors
- Atomicity violations
Re-exports§
pub use atomic::AtomicFileOps;pub use atomic::FileOp;pub use atomic::TransactionResult;pub use edit::EditEngine;pub use edit::EditResult;pub use edit::SearchReplaceBlock;pub use edit::compute_hash;pub use manager::VaultManager;pub use watcher::VaultEvent;pub use watcher::VaultWatcher;pub use watcher::WatcherConfig;
Modules§
- atomic
- Atomic file operations with rollback support.
- edit
- LLM-optimized file editing with SEARCH/REPLACE blocks
- manager
- Vault manager implementation with file watching and caching
- prelude
- watcher
- File system watcher for vault changes.
Structs§
- Block
- A block in vault content (Obsidian block reference with ^id)
- Callout
- A callout block in vault content
- Composite
Validator - Composite validator that runs multiple validators
- Content
Validator - Validates file content structure
- Counter
- A lock-free counter metric (monotonically increasing)
- File
Metadata - File metadata
- Frontmatter
- YAML frontmatter
- Frontmatter
Validator - Validates frontmatter structure and required fields
- Heading
- A heading in vault content
- Histogram
- A histogram for tracking value distributions
- Line
Index - Pre-computed line starts for O(log n) line/column lookup.
- Link
- A link in vault content
- Link
Validator - Validates link syntax and format
- List
Item - A list item with optional checkbox and nested content.
- Metrics
Context - Global metrics context registry (rarely used)
- Multi
Vault Manager - Multi-vault manager coordinating multiple vaults
- Server
Config - Global server configuration
- Source
Position - Position in source text (line, column, byte offset)
- Tag
- A tag in vault content
- Task
Item - A task item in vault content
- Validation
Issue - A validation issue found in content
- Validation
Report - Result of validating content
- Vault
Config - Configuration for a single vault
- Vault
File - A complete vault file with parsed content
- Vault
Info - Information about a registered vault
Enums§
- Callout
Type - Type of callout block
- Config
Profile - Profile selector for pre-configured deployments
- Content
Block - A parsed content block in a markdown document.
- Error
- The core error type for all Obsidian operations.
- Inline
Element - An inline element within a block.
- Link
Type - Type of link in Obsidian content
- Severity
- Severity level for validation issues
- Table
Alignment - Table column alignment.
Traits§
- Validator
- Trait for content validators
Type Aliases§
- Result
- Convenient Result type alias