└── only /only: -------------------------------------------------------------------------------- 1 | use serde::{Deserialize, Serialize}; 2 | use std::fs; 3 | 4 | #[derive(Serialize, Deserialize, Debug)] 5 | struct Config { 6 | username: String, 7 | theme: String, 8 | auto_save: bool, 9 | } 10 | 11 | impl Config { 12 | fn load(filename: &str) -> Self { 13 | let data = fs::read_to_string(filename).unwrap(); 14 | serde_json::from_str(&data).unwrap() 15 | } 16 | 17 | fn save(&self, filename: &str) { 18 | let data = serde_json::to_string_pretty(self).unwrap(); 19 | fs::write(filename, data).unwrap(); 20 | } 21 | } 22 | 23 | fn main() { 24 | let filename = "config.json"; 25 | let mut config = Config::load(filename); 26 | 27 | println!("Current Config: {:?}", config); 28 | config.theme = "dark".to_string(); 29 | config.save(filename); 30 | } 31 | --------------------------------------------------------------------------------