| Crates.io | raz-override |
| lib.rs | raz-override |
| version | 0.2.4 |
| created_at | 2025-07-03 15:34:03.359741+00 |
| updated_at | 2025-07-07 09:27:04.271686+00 |
| description | Override management system for raz with stable key generation |
| homepage | |
| repository | https://github.com/raz-rs/raz |
| max_upload_size | |
| id | 1736410 |
| size | 190,035 |
Override management system for raz with stable key generation that doesn't depend on exact cursor position.
fn:test_my_function)The override system implements a deferred save pattern - overrides are only persisted after successful command execution. This prevents failed configurations from polluting the override store.
use raz_override::{SmartOverrideParser, OverrideSystem};
use raz_config::CommandOverride;
use std::path::Path;
# fn main() -> Result<(), Box<dyn std::error::Error>> {
// Parse runtime overrides
let parser = SmartOverrideParser::new("test");
let overrides = parser.parse("RUST_BACKTRACE=full --release -- --exact");
// Create override system for workspace
let workspace_path = Path::new(".");
let mut override_system = OverrideSystem::new(&workspace_path)?;
// Get function context and save override (deferred save pattern)
let file_path = Path::new("src/lib.rs");
let function_context = override_system.get_function_context(file_path, 24, Some(0))?;
let override_key = override_system.generate_key(&function_context)?;
// Create a command override
let mut command_override = CommandOverride::new("cargo".to_string());
command_override.cargo_options.push("--release".to_string());
// Only save after successful execution
let command_succeeded = true; // Set based on actual command execution
if command_succeeded {
override_system.save_override_with_validation(
override_key,
command_override,
&function_context,
"test"
)?;
}
# Ok(())
# }
The crate provides comprehensive APIs for override management:
For CLI usage, see the raz-cli documentation.
The crate includes migration functionality for converting legacy cursor position-based overrides to the new stable key format. Migration can be performed programmatically through the API.
See migration-guide.md for the migration format details.