/* This file is part of DarkFi (https://dark.fi) * * Copyright (C) 2020-2023 Dyne.org foundation * * This program is free software: you can redistribute it and/or modify * it under the terms of the GNU Affero General Public License as * published by the Free Software Foundation, either version 3 of the * License, or (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU Affero General Public License for more details. * * You should have received a copy of the GNU Affero General Public License * along with this program. If not, see . */ use std::{ fs::File, io::{BufReader, Read, Write}, path::Path, }; use tinyjson::JsonValue; use crate::Result; pub fn load_file(path: &Path) -> Result { let file = File::open(path)?; let mut reader = BufReader::new(file); let mut st = String::new(); reader.read_to_string(&mut st)?; Ok(st) } pub fn save_file(path: &Path, st: &str) -> Result<()> { let mut file = File::create(path)?; file.write_all(st.as_bytes())?; Ok(()) } pub fn load_json_file(path: &Path) -> Result { let st = load_file(path)?; Ok(st.parse()?) } pub fn save_json_file(path: &Path, value: &JsonValue, pretty: bool) -> Result<()> { let mut file = File::create(path)?; if pretty { value.format_to(&mut file)?; } else { value.write_to(&mut file)?; } Ok(()) }