pub mod analyzer;
pub mod cli;
pub mod config;
pub mod error;
pub mod orchestrator;
pub mod parser;
pub mod reporter;
pub mod suggestion;
pub mod validator;
pub mod version;
pub use analyzer::{
CodeAnalyzer, CrateInfo, CrateRegistry, Dependency, PublicApi, ValidationResult,
};
pub use cli::{AuditCli, AuditCommand, CliOutputFormat, CliSeverity};
pub use config::{AuditConfig, AuditConfigBuilder, IssueSeverity, OutputFormat};
pub use error::{AuditError, Result};
pub use orchestrator::AuditOrchestrator;
pub use parser::{
ApiItemType, ApiReference, CodeExample, DocumentationParser, FeatureMention, InternalLink,
ParsedDocument, VersionReference, VersionType,
};
pub use reporter::{
AuditIssue, AuditReport, AuditReportConfig, AuditSummary, FileAuditResult, IssueCategory,
ProblematicFile, Recommendation, RecommendationType, ReportGenerator,
};
pub use suggestion::{Suggestion, SuggestionConfig, SuggestionEngine, SuggestionType};
pub use validator::{
AsyncValidationConfig, CompilationError, ErrorType, ExampleValidator, ValidationMetadata,
ValidationResult as ExampleValidationResult,
};
pub use version::{
DependencySpec, ValidationSeverity, VersionTolerance, VersionValidationConfig,
VersionValidationResult, VersionValidator, WorkspaceVersionInfo,
};
pub const VERSION: &str = env!("CARGO_PKG_VERSION");
pub const CRATE_NAME: &str = env!("CARGO_PKG_NAME");
#[cfg(test)]
mod tests {
use super::*;
#[test]
fn test_version_info() {
assert!(!VERSION.is_empty());
assert_eq!(CRATE_NAME, "adk-doc-audit");
}
#[test]
fn test_config_creation() {
let temp_dir = std::env::temp_dir();
let workspace_path = temp_dir.join("test_workspace_2");
let docs_path = temp_dir.join("test_docs_2");
std::fs::create_dir_all(&workspace_path).unwrap();
std::fs::create_dir_all(&docs_path).unwrap();
let config =
AuditConfig::builder().workspace_path(&workspace_path).docs_path(&docs_path).build();
assert!(config.is_ok());
std::fs::remove_dir_all(&workspace_path).ok();
std::fs::remove_dir_all(&docs_path).ok();
}
}