pub mod models;
pub mod checker;
pub mod parser;
use crate::models::Report;
use crate::checker::AccessibilityChecker;
use crate::parser::HtmlParser;
pub struct AxisCore {
checker: AccessibilityChecker,
parser: HtmlParser,
}
impl AxisCore {
pub fn new() -> Self {
Self {
checker: AccessibilityChecker::new(),
parser: HtmlParser::new(),
}
}
pub async fn check_url(&self, url: &str) -> Result<Report, Box<dyn std::error::Error>> {
let load_result = self.parser.load_from_url(url).await?;
let report = self.checker.check_accessibility(load_result);
Ok(report)
}
pub fn check_html(&self, html: &str, base_url: Option<&str>) -> Report {
let load_result = self.parser.parse_html(html, base_url);
self.checker.check_accessibility(load_result)
}
pub fn export_to_text(&self, report: &Report) -> String {
self.checker.export_to_text(report)
}
pub fn version() -> &'static str {
env!("CARGO_PKG_VERSION")
}
}
impl Default for AxisCore {
fn default() -> Self {
Self::new()
}
}