Spaces:
Build error
Build error
File size: 866 Bytes
84d2a97 |
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 |
use std::collections::HashMap;
use std::path::{Path, PathBuf};
use io::file_operations::{atomic_save_json, read_json};
use serde::{Deserialize, Serialize};
use crate::common::operation_error::OperationResult;
use crate::types::{PayloadFieldSchema, PayloadKeyType};
pub const PAYLOAD_INDEX_CONFIG_FILE: &str = "config.json";
/// Keeps information of which field should be index
#[derive(Debug, Default, Deserialize, Serialize, Clone)]
pub struct PayloadConfig {
pub indexed_fields: HashMap<PayloadKeyType, PayloadFieldSchema>,
}
impl PayloadConfig {
pub fn get_config_path(path: &Path) -> PathBuf {
path.join(PAYLOAD_INDEX_CONFIG_FILE)
}
pub fn load(path: &Path) -> OperationResult<Self> {
Ok(read_json(path)?)
}
pub fn save(&self, path: &Path) -> OperationResult<()> {
Ok(atomic_save_json(path, self)?)
}
}
|