Crate raz_config

Source
Expand description

§raz-config

Configuration management for RAZ - handles loading, saving, validation, and inheritance.

§Features

  • Hierarchical configuration (Global → Workspace → File)
  • Configuration versioning and migration
  • Built-in validation
  • TOML-based configuration files
  • Type-safe configuration schema
  • Support for command overrides
  • Template system for common setups

§Usage

use raz_config::{GlobalConfig, WorkspaceConfig, EffectiveConfig};

fn main() -> Result<(), Box<dyn std::error::Error>> {
    // Load global configuration
    let global = GlobalConfig::load()?;
    
    // Load workspace configuration
    let workspace = WorkspaceConfig::load("/path/to/workspace")?;
    
    // Merge configurations to get effective config
    let effective = EffectiveConfig::new(global, workspace);
    
    // Access configuration values
    let providers = &effective.raz.providers;
    
    Ok(())
}

Re-exports§

pub use templates::ConfigTemplates;
pub use builder::CommandConfigBuilder;
pub use builder::ConfigBuilder;
pub use builder::OverrideBuilder;
pub use effective::EffectiveConfig;
pub use error::ConfigError;
pub use error::Result;
pub use global::GlobalConfig;
pub use migration::ConfigMigrator;
pub use override_config::CommandOverride;
pub use override_config::OverrideMode;
pub use override_config::OverrideSettings;
pub use schema::ConfigSchema;
pub use schema::ConfigVersion;
pub use validation::ConfigValidator;
pub use workspace::WorkspaceConfig;

Modules§

builder
effective
error
global
migration
override_config
schema
templates
validation
workspace

Structs§

CommandConfig
FilterConfig
ProviderConfig
RazConfig
UiConfig

Constants§

CONFIG_CURRENT_VERSION
GLOBAL_CONFIG_PATH
WORKSPACE_CONFIG_FILENAME