use serde::{Deserialize, Serialize};
#[derive(Debug, Clone, Serialize, Deserialize)]
pub struct AlgorithmRegistryConfig {
pub enable_registry: bool,
pub storage_config: AlgorithmStorageConfig,
pub categorization_config: AlgorithmCategorizationConfig,
pub version_control: AlgorithmVersionControlConfig,
pub metadata_config: AlgorithmMetadataConfig,
pub validation_config: AlgorithmValidationConfig,
pub search_config: AlgorithmSearchConfig,
}
#[derive(Debug, Clone, Serialize, Deserialize)]
pub struct AlgorithmStorageConfig {
pub storage_type: String,
pub storage_path: String,
pub compression_enabled: bool,
}
#[derive(Debug, Clone, Serialize, Deserialize)]
pub struct AlgorithmCategorizationConfig {
pub enable_auto_categorization: bool,
pub category_tags: Vec<String>,
}
#[derive(Debug, Clone, Serialize, Deserialize)]
pub struct AlgorithmVersionControlConfig {
pub enable_versioning: bool,
pub max_versions: usize,
}
#[derive(Debug, Clone, Serialize, Deserialize)]
pub struct AlgorithmMetadataConfig {
pub required_fields: Vec<String>,
pub optional_fields: Vec<String>,
}
#[derive(Debug, Clone, Serialize, Deserialize)]
pub struct AlgorithmValidationConfig {
pub enable_validation: bool,
pub validation_timeout: u64,
}
#[derive(Debug, Clone, Serialize, Deserialize)]
pub struct AlgorithmSearchConfig {
pub enable_fuzzy_search: bool,
pub max_results: usize,
}