1pub mod parser;
6pub mod validator;
7
8pub use parser::ComponentParser;
9pub use validator::ComponentValidator;
10
11use std::path::Path;
12use synth_core::{Component, Error, Result};
13
14pub fn parse_component_file(path: &Path) -> Result<Component> {
16 let bytes = std::fs::read(path)
17 .map_err(|e| Error::parse(format!("Failed to read file {}: {}", path.display(), e)))?;
18
19 parse_component(&bytes)
20}
21
22pub fn parse_component(bytes: &[u8]) -> Result<Component> {
24 let parser = ComponentParser::new();
25 parser.parse(bytes)
26}
27
28pub fn validate_component(component: &Component) -> Result<()> {
30 let validator = ComponentValidator::new();
31 validator.validate(component)
32}