parent_ai_json_engine/
lib.rs1pub mod aggregator;
2pub mod collector;
3pub mod config;
4pub mod io;
5pub mod validator;
6
7pub use crate::aggregator::MetricsAggregator;
8pub use crate::collector::DataCollector;
9pub use crate::config::Config;
10pub use crate::validator::SchemaValidator;
11
12pub type AnyResult<T> = std::result::Result<T, Box<dyn std::error::Error + Send + Sync>>;
13use std::path::PathBuf;
14use std::sync::Arc;
15
16pub type OptionalModel = Option<Arc<()>>;
17
18pub fn init_and_load_model_from_env() -> AnyResult<OptionalModel> {
19 if std::env::var("JSON_ENGINE_MODEL_PATH").is_ok() {
20 return Ok(Some(Arc::new(())));
21 }
22 Ok(None)
23}
24
25pub fn create_collector_from_config(
26 validator: Arc<SchemaValidator>,
27 output_dir: PathBuf,
28 config: &Config,
29) -> AnyResult<DataCollector> {
30 let network = init_and_load_model_from_env()?;
31 let collector = DataCollector::new(validator, output_dir, config, network)?;
32 Ok(collector)
33}