parent_ai_json_engine 0.0.2

Crate provides a JSON engine for collecting, aggregating, and managing models.
Documentation
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)
}