pub mod enhancer;
pub mod schema_cache;
pub mod validator;
pub use enhancer::ErrorEnhancer;
pub use schema_cache::{CacheStats, CachedSchema, ToolSchemaCache};
pub use validator::{McpValidator, ValidationError, ValidationErrorKind, ValidationResult};
#[derive(Debug, Clone)]
pub struct ValidationConfig {
pub pre_validate: bool,
pub enhance_errors: bool,
pub suggestion_distance: usize,
}
impl Default for ValidationConfig {
fn default() -> Self {
Self {
pre_validate: true,
enhance_errors: true,
suggestion_distance: 3,
}
}
}
#[cfg(test)]
mod tests {
use super::*;
#[test]
fn test_validation_config_default() {
let config = ValidationConfig::default();
assert!(config.pre_validate);
assert!(config.enhance_errors);
assert_eq!(config.suggestion_distance, 3);
}
#[test]
fn test_validation_config_custom() {
let config = ValidationConfig {
pre_validate: false,
enhance_errors: true,
suggestion_distance: 5,
};
assert!(!config.pre_validate);
assert!(config.enhance_errors);
assert_eq!(config.suggestion_distance, 5);
}
}