Expand description
Configuration management module for SubX.
This module provides the complete configuration service system with dependency injection support and comprehensive type definitions.
§Key Components
Config- Main configuration structure containing all settingsConfigService- Service interface for configuration managementProductionConfigService- Production implementation with file I/OTestConfigService- Test implementation with controlled behaviorTestConfigBuilder- Builder pattern for test configurations
§Validation System
The configuration system provides a layered validation architecture:
validation- Low-level validation functions for individual valuesvalidator- High-level configuration section validatorsfield_validator- Key-value validation for configuration service
§Architecture
ConfigService
↓
field_validator (key-value validation)
↓
validation (primitive validation functions)
validator (section validation)
↓
validation (primitive validation functions)§Examples
use subx_cli::config::{Config, ConfigService, ProductionConfigService};
// Create a production configuration service
let config_service = ProductionConfigService::new()?;
// Load configuration
let config = config_service.get_config()?;
println!("AI Provider: {}", config.ai.provider);§Architecture
The configuration system uses dependency injection to provide testable
and maintainable configuration management. All configuration access
should go through the ConfigService trait.
Re-exports§
pub use builder::TestConfigBuilder;pub use environment::EnvironmentProvider;pub use environment::SystemEnvironmentProvider;pub use environment::TestEnvironmentProvider;pub use service::ConfigService;pub use service::ProductionConfigService;pub use test_service::TestConfigService;pub use field_validator::validate_field;pub use validator::validate_config;
Modules§
- builder
- Configuration builder for fluent test configuration creation.
- environment
- Environment variable provider module.
- field_
validator - Key-value validation for configuration service.
- service
- Configuration service system for dependency injection and test isolation.
- test_
macros - Test macros for convenient configuration service testing.
- test_
service - Test configuration service for isolated testing.
- validation
- Low-level validation functions for individual configuration values.
- validator
- High-level configuration validation for configuration sections.
Structs§
- AIConfig
- AI service configuration parameters.
- Config
- Full application configuration for SubX.
- Formats
Config - Subtitle format related configuration.
- General
Config - General configuration settings for the SubX CLI tool.
- Parallel
Config - Parallel processing configuration.
- Sync
Config - Audio synchronization configuration supporting VAD speech detection.
- VadConfig
- Local Voice Activity Detection configuration.
Enums§
- Overflow
Strategy - Strategy for handling overflow when all workers are busy.