ConfigValidation

Trait ConfigValidation 

Source
pub trait ConfigValidation:
    Clone
    + Debug
    + Send
    + Sync
    + 'static {
    // Required methods
    fn validate(&self) -> ConfigValidationResult;
    fn schema_version(&self) -> String;
    fn migrate_from_version(
        &self,
        from_version: &str,
        data: &str,
    ) -> Result<Self, PipelineError>;
}
Expand description

Generic trait for configuration validation with detailed error reporting

This trait defines the interface for configuration validation, enabling type-safe validation of configuration data with comprehensive error reporting and schema versioning support.

§Key Features

  • Validation Logic: Implement custom validation rules for configuration
  • Error Reporting: Detailed error messages with field-level information
  • Schema Versioning: Track and manage configuration schema versions
  • Migration Support: Automatic migration between configuration versions

§Implementation Requirements

Implementing types must:

  • Be cloneable for configuration updates
  • Be debuggable for error reporting
  • Be thread-safe (Send + Sync)
  • Have a stable lifetime ('static)

§Examples

Required Methods§

Source

fn validate(&self) -> ConfigValidationResult

Validates the configuration and returns detailed validation results

Source

fn schema_version(&self) -> String

Returns the configuration schema version for compatibility checking

Source

fn migrate_from_version( &self, from_version: &str, data: &str, ) -> Result<Self, PipelineError>

Migrates configuration from an older schema version

Dyn Compatibility§

This trait is not dyn compatible.

In older versions of Rust, dyn compatibility was called "object safety", so this trait is not object safe.

Implementors§