pub mod parser;
pub mod validator;
pub use parser::ComponentParser;
pub use validator::ComponentValidator;
use std::path::Path;
use synth_core::{Component, Error, Result};
pub fn parse_component_file(path: &Path) -> Result<Component> {
let bytes = std::fs::read(path)
.map_err(|e| Error::parse(format!("Failed to read file {}: {}", path.display(), e)))?;
parse_component(&bytes)
}
pub fn parse_component(bytes: &[u8]) -> Result<Component> {
let parser = ComponentParser::new();
parser.parse(bytes)
}
pub fn validate_component(component: &Component) -> Result<()> {
let validator = ComponentValidator::new();
validator.validate(component)
}