Expand description
Configuration management and validation.
Legacy re-export: the module now lives in the subx-core crate; the
canonical path is subx_core::config. This alias exists for consumers
that have not yet migrated and will be removed once they have.
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_core::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.
Modules§
- builder
- Configuration builder for fluent test configuration creation.
- environment
- Environment variable provider module.
- field_
validator - Key-value validation for configuration service.
- masking
- Utilities for masking sensitive configuration values for display.
- 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.
- Production
Config Service - Production configuration service implementation.
- Sync
Config - Audio synchronization configuration supporting VAD speech detection.
- System
Environment Provider - System environment variable provider implementation.
- Test
Config Builder - Fluent builder for creating test configurations.
- Test
Config Service - Test configuration service implementation.
- Test
Environment Provider - Test environment variable provider implementation.
- Translation
Config - Subtitle translation configuration parameters.
- VadConfig
- Local Voice Activity Detection configuration.
Enums§
- Overflow
Strategy - Strategy for handling overflow when all workers are busy.
Traits§
- Config
Service - Configuration service trait for dependency injection.
- Environment
Provider - Environment variable provider trait.
Functions§
- mask_
sensitive_ value - Return a display-safe representation of a configuration value.
- validate_
config - Validate the complete configuration.
- validate_
field - Validate and parse a configuration field based on its key.