Forráskód Böngészése

配置文件换成json形式。

skyffire 1 éve
szülő
commit
605ea4ffde
3 módosított fájl, 45 hozzáadás és 6 törlés
  1. 2 0
      .gitignore
  2. 16 0
      global/src/params.rs
  3. 27 6
      src/main.rs

+ 2 - 0
.gitignore

@@ -7,3 +7,5 @@ config.toml*
 *.log.*
 /logs*
 /test_account.toml
+
+config.json

+ 16 - 0
global/src/params.rs

@@ -61,6 +61,22 @@ impl Params {
         // 解析 TOML 数据到 Params 结构体
         let params: Params = from_str(&contents)?;
 
+        Ok(params)
+    }
+    pub fn new_json(file_path: &str) -> Result<Params, Box<dyn std::error::Error>> {
+        // 打开文件并读取内容
+        // let mut file = File::open(file_path)?;
+        // let mut contents = String::new();
+        // file.read_to_string(&mut contents)?;
+
+        let json_contents = std::fs::read_to_string(file_path)?;
+        // 使用serde_json库来解析JSON文件内容,并将其转换为Ship结构体
+        let params: Params = serde_json::from_str(&json_contents)?;
+
+
+        // 解析 TOML 数据到 Params 结构体
+        // let params: Params = from_str(&contents)?;
+
         Ok(params)
     }
 }

+ 27 - 6
src/main.rs

@@ -19,8 +19,29 @@ fn log_level_init(log_str: String, port: u32, account_name: String) -> WorkerGua
 }
 
 // 获取本地配置
-fn read_params() -> Params {
-    let mut path = "config.toml";
+// fn read_params() -> Params {
+//     let mut path = "config.toml";
+//
+//     let args: Vec<String> = std::env::args().collect();
+//
+//     for arg in &args {
+//         if !arg.contains("--config") {
+//             continue;
+//         }
+//
+//         let p: Vec<&str> = arg.split("=").collect();
+//         path = p[1];
+//     }
+//
+//     println!("配置文件路径:{}", path);
+//     let params = Params::new(path).unwrap();
+//
+//     return params;
+// }
+
+// 获取本地配置- json 文件解析
+fn read_params_json() -> Params {
+    let mut path = "config.json";
 
     let args: Vec<String> = std::env::args().collect();
 
@@ -28,21 +49,21 @@ fn read_params() -> Params {
         if !arg.contains("--config") {
             continue;
         }
-
         let p: Vec<&str> = arg.split("=").collect();
         path = p[1];
     }
 
     println!("配置文件路径:{}", path);
-    let params = Params::new(path).unwrap();
-
+    let params = Params::new_json(path).unwrap();
     return params;
 }
 
 #[tokio::main(flavor = "multi_thread", worker_threads = 2)]
 async fn main() {
     // 日志级别配置
-    let params = read_params();
+    // let params = read_params();
+    let params = read_params_json();
+
     // 日志级别配置
     let _guard = log_level_init(params.log_level.clone(), params.port.clone(), params.account_name.clone());
     info!("配置读取成功:{:?}。", params);