relay-knowledge 1.1.16

Graph-database-based knowledge graph project.
Documentation
//! Owns durable JSON writes for model provider configuration.

use std::path::PathBuf;

use serde::Serialize;
use tokio::fs;

use super::ModelProviderError;

pub(super) async fn write_json<T: Serialize>(
    path: PathBuf,
    value: &T,
) -> Result<(), ModelProviderError> {
    if let Some(parent) = path.parent() {
        fs::create_dir_all(parent).await?;
    }
    let body = serde_json::to_vec_pretty(value)?;
    fs::write(path, body)
        .await
        .map_err(ModelProviderError::from)
}