From d42bdb758ccaab9fe9837f994453bc38eddeb658 Mon Sep 17 00:00:00 2001
From: Eason <30045503+Eason0729@users.noreply.github.com>
Date: Wed, 12 Jun 2024 21:26:24 +0800
Subject: [PATCH] add win support

---
 tank-rust/src/lib.rs | 10 ++++------
 1 file changed, 4 insertions(+), 6 deletions(-)

diff --git a/tank-rust/src/lib.rs b/tank-rust/src/lib.rs
index 4fe8d71..134d160 100644
--- a/tank-rust/src/lib.rs
+++ b/tank-rust/src/lib.rs
@@ -1,6 +1,6 @@
 mod dqn;
 mod ffi;
-use std::{ffi::OsStr, os::unix::ffi::OsStrExt};
+use std::ffi::OsString;
 
 use burn::backend::{wgpu::AutoGraphicsApi, Wgpu};
 use dqn::prelude::*;
@@ -12,11 +12,9 @@ type Backend = Wgpu<AutoGraphicsApi, f32, i32>;
 
 #[no_mangle]
 pub extern "C" fn init(model_path: *const u8, len: i32) -> *mut DQNApp<'static> {
-    let model_path =
-        OsStr::from_bytes(unsafe { std::slice::from_raw_parts(model_path, len as usize) })
-            .to_str()
-            .unwrap();
-    let app = DQNApp::new(model_path);
+    let model_path = unsafe { std::slice::from_raw_parts(model_path, len as usize) };
+    let model_path = unsafe { OsString::from_encoded_bytes_unchecked(model_path.to_vec()) };
+    let app = DQNApp::new(model_path.to_str().unwrap());
 
     Box::into_raw(Box::new(app))
 }