use std::fs::File;
use std::io::BufReader;
use std::path::Path;
use serde::Serialize;
use serde_json::to_string_pretty;
use anyhow::Result;
use crate::{
common::{Config, ModelConfig},
runtime::load_assets,
};
#[derive(Debug, Serialize, Clone)]
pub struct InspectInfo {
pub model_config: ModelConfig,
pub encoderfile_config: Config,
}
pub fn inspect_encoderfile(path_str: &str) -> Result<InspectInfo> {
let file = File::open(Path::new(&path_str))?;
let mut file = BufReader::new(file);
let mut loader = load_assets(&mut file)?;
let config = loader.encoderfile_config()?;
let model_config = loader.model_config()?;
Ok(InspectInfo {
model_config,
encoderfile_config: config,
})
}
pub fn inspect_encoderfile_pretty(path_str: &str) -> Result<String> {
Ok(to_string_pretty(&inspect_encoderfile(path_str)?)?)
}