From d0623e3282648417da8405e8e2911cd1e3a0dffa Mon Sep 17 00:00:00 2001 From: syui Date: Sun, 8 Jun 2025 12:03:58 +0900 Subject: [PATCH] fix --- src/config.rs | 13 +++++++++++-- 1 file changed, 11 insertions(+), 2 deletions(-) diff --git a/src/config.rs b/src/config.rs index 3ea3cd8..4caedcf 100644 --- a/src/config.rs +++ b/src/config.rs @@ -1,5 +1,5 @@ use config::{Config, ConfigError, Environment, File}; -use serde::Deserialize; +use serde::{Deserialize, Deserializer}; use std::path::PathBuf; #[derive(Debug, Clone, Deserialize)] @@ -32,6 +32,7 @@ pub struct Settings { pub card_master_url: String, // File paths + #[serde(deserialize_with = "deserialize_pathbuf")] pub config_dir: PathBuf, } @@ -74,7 +75,7 @@ impl Settings { .set_default("card_master_url", "https://git.syui.ai/ai/ai/raw/branch/main/ai.json")?; // Load from config file if it exists - let config_file = config_dir.join("config.toml"); + let config_file = config_dir.join("config.json"); if config_file.exists() { builder = builder.add_source(File::from(config_file)); } @@ -124,4 +125,12 @@ impl GachaConfig { (self.prob_normal, crate::models::CardRarity::Normal), ] } +} + +fn deserialize_pathbuf<'de, D>(deserializer: D) -> Result +where + D: Deserializer<'de>, +{ + let s = String::deserialize(deserializer)?; + Ok(PathBuf::from(s)) } \ No newline at end of file