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; #[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)) }