pub mod aggregator;
pub mod collector;
pub mod config;
pub mod io;
pub mod validator;
pub use crate::aggregator::MetricsAggregator;
pub use crate::collector::DataCollector;
pub use crate::config::Config;
pub use crate::validator::SchemaValidator;
pub type AnyResult<T> = std::result::Result<T, Box<dyn std::error::Error + Send + Sync>>;
use std::path::PathBuf;
use std::sync::Arc;
pub type OptionalModel = Option<Arc<()>>;
pub fn init_and_load_model_from_env() -> AnyResult<OptionalModel> {
if std::env::var("JSON_ENGINE_MODEL_PATH").is_ok() {
return Ok(Some(Arc::new(())));
}
Ok(None)
}
pub fn create_collector_from_config(
validator: Arc<SchemaValidator>,
output_dir: PathBuf,
config: &Config,
) -> AnyResult<DataCollector> {
let network = init_and_load_model_from_env()?;
let collector = DataCollector::new(validator, output_dir, config, network)?;
Ok(collector)
}