use serde::{Deserialize, Serialize};
use std::{
collections::HashMap,
path::{Path, PathBuf},
};
use crate::error::Result;
#[derive(Clone, Debug, Default, PartialEq, Eq, Serialize, Deserialize)]
pub struct FileTableData {
pub search_value: Option<String>,
}
#[derive(Clone, Debug, Default, PartialEq, Eq, Deserialize, Serialize)]
pub struct Config {
pub by_file: Option<HashMap<PathBuf, FileTableData>>,
#[serde(default)]
pub cargo: Option<CargoReplaceMode>,
pub authors: Option<HashMap<String, String>>,
}
impl Config {
pub fn from_ron(path: &impl AsRef<Path>) -> Result<Config> {
let file = std::fs::read_to_string(path)?;
let value: Config = ron::from_str(&file)?;
Ok(value)
}
}
#[derive(Clone, Debug, PartialEq, Eq, Serialize, Deserialize)]
pub enum CargoReplaceMode {
Autodetect,
Packages(Vec<String>),
}