diff --git a/engine/auxiliary/core_rustabi/src/argus/core/downstream_config.rs b/engine/auxiliary/core_rustabi/src/argus/core/downstream_config.rs index c7708232..27e7508b 100644 --- a/engine/auxiliary/core_rustabi/src/argus/core/downstream_config.rs +++ b/engine/auxiliary/core_rustabi/src/argus/core/downstream_config.rs @@ -17,6 +17,7 @@ */ use std::ptr::null; + use lowlevel_rustabi::argus::lowlevel::Vector2i; use lowlevel_rustabi::argus::lowlevel::Vector2u; use lowlevel_rustabi::util::*; @@ -55,7 +56,11 @@ pub fn set_scripting_parameters(params: &ScriptingParameters) { unsafe { argus_set_scripting_parameters(&argus_scripting_parameters_t { has_main: params.main.is_some(), - main: params.main.as_ref().map(|s| string_to_cstring(&s).as_ptr()).unwrap_or(null()), + main: params + .main + .as_ref() + .map(|s| string_to_cstring(&s).as_ptr()) + .unwrap_or(null()), }); } } @@ -108,11 +113,23 @@ pub fn set_initial_window_parameters(params: &InitialWindowParameters) { unsafe { argus_set_initial_window_parameters(&argus_initial_window_parameters_t { has_id: params.id.is_some(), - id: params.id.as_ref().map(|s| string_to_cstring(&s).as_ptr()).unwrap_or(null()), + id: params + .id + .as_ref() + .map(|s| string_to_cstring(&s).as_ptr()) + .unwrap_or(null()), has_title: params.title.is_some(), - title: params.title.as_ref().map(|s| string_to_cstring(&s).as_ptr()).unwrap_or(null()), + title: params + .title + .as_ref() + .map(|s| string_to_cstring(&s).as_ptr()) + .unwrap_or(null()), has_mode: params.mode.is_some(), - mode: params.mode.as_ref().map(|s| string_to_cstring(&s).as_ptr()).unwrap_or(null()), + mode: params + .mode + .as_ref() + .map(|s| string_to_cstring(&s).as_ptr()) + .unwrap_or(null()), has_vsync: params.vsync.is_some(), vsync: params.vsync.unwrap_or_default(), has_mouse_visible: params.mouse_visible.is_some(), diff --git a/engine/auxiliary/core_rustabi/src/argus/core/engine.rs b/engine/auxiliary/core_rustabi/src/argus/core/engine.rs index 77f2e927..362d9720 100644 --- a/engine/auxiliary/core_rustabi/src/argus/core/engine.rs +++ b/engine/auxiliary/core_rustabi/src/argus/core/engine.rs @@ -20,6 +20,8 @@ use std::convert::TryFrom; use num_enum::{IntoPrimitive, TryFromPrimitive}; +use lowlevel_rustabi::util::str_to_cstring; + use crate::core_cabi; use crate::core_cabi::*; @@ -44,7 +46,7 @@ pub fn initialize_engine() { pub fn crash(format: &str) -> ! { unsafe { - argus_crash(string_to_cstring(format)); + argus_crash(str_to_cstring(format).as_ptr()); } } @@ -56,13 +58,17 @@ pub fn start_engine(callback: DeltaCallback) -> ! { pub fn get_current_lifecycle_stage() -> LifecycleStage { unsafe { - return LifecycleStage::try_from(argus_get_current_lifecycle_stage()).unwrap(); + return LifecycleStage::try_from(argus_get_current_lifecycle_stage()) + .expect("Invalid LifecycleStage ordinal"); } } pub fn register_update_callback(update_callback: DeltaCallback, ordering: Ordering) -> Index { unsafe { - return argus_register_render_callback(Some(update_callback), ordering as bindings::Ordering); + return argus_register_render_callback( + Some(update_callback), + ordering as bindings::Ordering, + ); } } @@ -74,7 +80,10 @@ pub fn unregister_update_callback(id: Index) { pub fn register_render_callback(render_callback: DeltaCallback, ordering: Ordering) -> Index { unsafe { - return argus_register_render_callback(Some(render_callback), ordering as bindings::Ordering); + return argus_register_render_callback( + Some(render_callback), + ordering as bindings::Ordering, + ); } } diff --git a/engine/auxiliary/core_rustabi/src/argus/core/engine_config.rs b/engine/auxiliary/core_rustabi/src/argus/core/engine_config.rs index eb5a0d28..fa1775f8 100644 --- a/engine/auxiliary/core_rustabi/src/argus/core/engine_config.rs +++ b/engine/auxiliary/core_rustabi/src/argus/core/engine_config.rs @@ -17,7 +17,7 @@ */ use std::convert::TryFrom; -use std::ffi::{CString, c_char}; +use std::ffi::{c_char, CString}; use std::ptr::null_mut; use lowlevel_rustabi::util::*; @@ -83,7 +83,8 @@ pub fn set_render_backend(name: &str) { pub fn get_screen_space_scale_mode() -> ScreenSpaceScaleMode { unsafe { - return ScreenSpaceScaleMode::try_from(core_cabi::get_screen_space_scale_mode()).unwrap(); + return ScreenSpaceScaleMode::try_from(core_cabi::get_screen_space_scale_mode()) + .expect("Invalid ScreenSpaceScaleMode ordinal"); } } diff --git a/engine/auxiliary/core_rustabi/src/argus/core/event.rs b/engine/auxiliary/core_rustabi/src/argus/core/event.rs index 2191d5ae..2d9146b1 100644 --- a/engine/auxiliary/core_rustabi/src/argus/core/event.rs +++ b/engine/auxiliary/core_rustabi/src/argus/core/event.rs @@ -25,8 +25,8 @@ use crate::argus::core::Index; use crate::argus::core::Ordering; use crate::core_cabi; -pub use crate::core_cabi::argus_event_t; pub use crate::core_cabi::argus_event_const_t; +pub use crate::core_cabi::argus_event_t; #[repr(u32)] pub enum TargetThread { @@ -35,7 +35,9 @@ pub enum TargetThread { } pub trait ArgusEvent { - fn of(handle: argus_event_t) -> Self where Self : Sized; + fn of(handle: argus_event_t) -> Self + where + Self: Sized; fn get_type_id(&self) -> String; @@ -56,8 +58,13 @@ extern "C" fn clean_up_event_handler(_: Index, ctx: *mut c_void) { let _: Box> = unsafe { Box::from_raw(mem::transmute(ctx)) }; } -pub fn register_event_handler(type_id: &str, handler: &EventHandler, - target_thread: TargetThread, data: *mut D, ordering: Ordering) -> Index { +pub fn register_event_handler( + type_id: &str, + handler: &EventHandler, + target_thread: TargetThread, + data: *mut D, + ordering: Ordering, +) -> Index { unsafe { let closure = |handle: argus_event_const_t| { handler(&E::of(handle as argus_event_t), data); @@ -71,7 +78,7 @@ pub fn register_event_handler(type_id: &str, handler: &EventHa target_thread as core_cabi::TargetThread, Box::into_raw(ctx) as *mut c_void, ordering as core_cabi::Ordering, - Some(clean_up_event_handler) + Some(clean_up_event_handler), ); } } diff --git a/engine/auxiliary/core_rustabi/src/argus/core/module.rs b/engine/auxiliary/core_rustabi/src/argus/core/module.rs index 5e39b7a4..e6c96b42 100644 --- a/engine/auxiliary/core_rustabi/src/argus/core/module.rs +++ b/engine/auxiliary/core_rustabi/src/argus/core/module.rs @@ -45,10 +45,19 @@ pub fn lifecycle_stage_to_str(stage: LifecycleStage) -> String { } } -pub fn register_dynamic_module(id: &str, lifecycle_callback: LifecycleUpdateCallback, dependencies: Vec) { +pub fn register_dynamic_module( + id: &str, + lifecycle_callback: LifecycleUpdateCallback, + dependencies: Vec, +) { unsafe { let (names, count) = string_vec_to_cstr_arr(dependencies).into(); - argus_register_dynamic_module(str_to_cstring(id).as_ptr(), Some(lifecycle_callback), count, names); + argus_register_dynamic_module( + str_to_cstring(id).as_ptr(), + Some(lifecycle_callback), + count, + names, + ); } } @@ -58,11 +67,11 @@ pub fn enable_dynamic_module(module_id: &str) -> bool { } } - pub fn get_present_dynamic_modules() -> Vec { - unsafe { - let arr = argus_get_present_dynamic_modules(); - let vec = argus::lowlevel::string_array_to_vec(arr); - argus::lowlevel::free_string_array(arr); - return vec; - } - } +pub fn get_present_dynamic_modules() -> Vec { + unsafe { + let arr = argus_get_present_dynamic_modules(); + let vec = argus::lowlevel::string_array_to_vec(arr); + argus::lowlevel::free_string_array(arr); + return vec; + } +} diff --git a/engine/auxiliary/core_rustabi/src/core_cabi/bindings.rs b/engine/auxiliary/core_rustabi/src/core_cabi/bindings.rs index b65915a7..7bf3577c 100644 --- a/engine/auxiliary/core_rustabi/src/core_cabi/bindings.rs +++ b/engine/auxiliary/core_rustabi/src/core_cabi/bindings.rs @@ -106,7 +106,7 @@ extern "C" { pub fn argus_get_present_dynamic_modules() -> StringArray; pub fn argus_initialize_engine(); pub fn argus_start_engine(callback: delta_callback_t) -> !; - pub fn argus_crash(format: *const ::std::os::raw::c_char) -> !; + pub fn argus_crash(msg: *const ::std::os::raw::c_char) -> !; pub fn argus_get_current_lifecycle_stage() -> LifecycleStage; pub fn argus_register_update_callback( update_callback: delta_callback_t, diff --git a/engine/auxiliary/core_rustabi/src/core_cabi/mod.rs b/engine/auxiliary/core_rustabi/src/core_cabi/mod.rs index 31dac5b1..4177095d 100644 --- a/engine/auxiliary/core_rustabi/src/core_cabi/mod.rs +++ b/engine/auxiliary/core_rustabi/src/core_cabi/mod.rs @@ -16,8 +16,10 @@ * along with this program. If not, see . */ +#[allow(unused_imports)] pub mod bindings; +#[allow(unused_imports)] use lowlevel_rustabi::lowlevel_cabi::*; pub use self::bindings::*; diff --git a/engine/auxiliary/lowlevel_rustabi/src/argus/lowlevel/c_interop.rs b/engine/auxiliary/lowlevel_rustabi/src/argus/lowlevel/c_interop.rs index e415e17b..c5fdd6fa 100644 --- a/engine/auxiliary/lowlevel_rustabi/src/argus/lowlevel/c_interop.rs +++ b/engine/auxiliary/lowlevel_rustabi/src/argus/lowlevel/c_interop.rs @@ -20,9 +20,9 @@ use std::ffi::CStr; use crate::lowlevel_cabi::*; -pub use crate::lowlevel_cabi::StringArray as StringArray; -pub use crate::lowlevel_cabi::StringArrayConst as StringArrayConst; use crate::lowlevel_cabi; +pub use crate::lowlevel_cabi::StringArray; +pub use crate::lowlevel_cabi::StringArrayConst; pub fn string_array_to_vec(sa: StringArray) -> Vec { unsafe { diff --git a/engine/auxiliary/lowlevel_rustabi/src/argus/lowlevel/message.rs b/engine/auxiliary/lowlevel_rustabi/src/argus/lowlevel/message.rs index bd0fd0d7..adb9148e 100644 --- a/engine/auxiliary/lowlevel_rustabi/src/argus/lowlevel/message.rs +++ b/engine/auxiliary/lowlevel_rustabi/src/argus/lowlevel/message.rs @@ -31,9 +31,11 @@ pub fn set_message_dispatcher(dispatcher: MessageDispatcher) { } } -pub fn broadcast_message(message: &T) { +pub fn broadcast_message(message: &T) { unsafe { - argus_broadcast_message(str_to_cstring(T::get_message_type_id()).as_ptr(), - &message as *const _ as *const std::ffi::c_void); + argus_broadcast_message( + str_to_cstring(T::get_message_type_id()).as_ptr(), + &message as *const _ as *const std::ffi::c_void, + ); } } diff --git a/engine/auxiliary/lowlevel_rustabi/src/lowlevel_cabi/mod.rs b/engine/auxiliary/lowlevel_rustabi/src/lowlevel_cabi/mod.rs index 0fe55def..fb9bd25c 100644 --- a/engine/auxiliary/lowlevel_rustabi/src/lowlevel_cabi/mod.rs +++ b/engine/auxiliary/lowlevel_rustabi/src/lowlevel_cabi/mod.rs @@ -16,6 +16,7 @@ * along with this program. If not, see . */ +#[allow(unused_imports)] pub mod bindings; pub use bindings::*; diff --git a/engine/auxiliary/lowlevel_rustabi/src/util.rs b/engine/auxiliary/lowlevel_rustabi/src/util.rs index 5ab9d4d4..322d0a8a 100644 --- a/engine/auxiliary/lowlevel_rustabi/src/util.rs +++ b/engine/auxiliary/lowlevel_rustabi/src/util.rs @@ -16,30 +16,50 @@ * along with this program. If not, see . */ -use std::ffi::{CStr, CString, c_char}; +use std::ffi::{c_char, CStr, CString}; pub struct CStringArray { vec: Vec, } +impl Into<*const *const c_char> for CStringArray { + fn into(self) -> *const *const c_char { + return self + .vec + .iter() + .map(|s| s.as_ptr()) + .collect::>() + .as_ptr(); + } +} + impl Into<(*const *const c_char, usize)> for CStringArray { fn into(self) -> (*const *const c_char, usize) { - return (self.vec.iter().map(|s| s.as_ptr()).collect::>().as_ptr(), self.vec.len()); + let len = self.vec.len(); + return (self.into(), len); } } pub fn string_to_cstring(s: &String) -> CString { - return CString::new(s.to_string()).unwrap(); + CString::new(s.to_string()).unwrap() } pub fn str_to_cstring(s: &str) -> CString { - return string_to_cstring(&s.to_string()); + string_to_cstring(&s.to_string()) } pub unsafe fn cstr_to_string(s: *const c_char) -> String { - return CStr::from_ptr(s).to_str().unwrap().to_string(); + CStr::from_ptr(s).to_str().unwrap().to_string() +} + +pub unsafe fn cstr_to_str<'a>(s: *const c_char) -> &'a str { + CStr::from_ptr(s) + .to_str() + .expect("Failed to convert C string to Rust string") } pub unsafe fn string_vec_to_cstr_arr(v: Vec) -> CStringArray { - return CStringArray { vec: v.iter().map(string_to_cstring).collect() }; + CStringArray { + vec: v.iter().map(string_to_cstring).collect(), + } } diff --git a/engine/auxiliary/wm_rustabi/module.properties b/engine/auxiliary/wm_rustabi/module.properties index 645cde44..5fe40bf5 100644 --- a/engine/auxiliary/wm_rustabi/module.properties +++ b/engine/auxiliary/wm_rustabi/module.properties @@ -2,4 +2,4 @@ name = wm_rustabi type = aux languages = RUST engine_module_deps = wm -engine_aux_deps = lowlevel_rustabi;core_rustabi +engine_aux_deps = lowlevel_rustabi,core_rustabi diff --git a/engine/auxiliary/wm_rustabi/src/argus/wm/api_util.rs b/engine/auxiliary/wm_rustabi/src/argus/wm/api_util.rs index c6a6dff9..99124bd3 100644 --- a/engine/auxiliary/wm_rustabi/src/argus/wm/api_util.rs +++ b/engine/auxiliary/wm_rustabi/src/argus/wm/api_util.rs @@ -17,14 +17,12 @@ */ use std::ffi::{c_char, c_void}; -use std::mem; use std::ptr::null_mut; use lowlevel_rustabi::util::*; use num_enum::{IntoPrimitive, TryFromPrimitive}; use crate::argus::wm::Window; -use crate::wm_cabi; use crate::wm_cabi::*; pub struct GLContext { @@ -54,7 +52,7 @@ impl VkSurface { return self.handle; } - pub unsafe fn get_mut_handle(&mut self) -> *mut c_void { + pub unsafe fn get_handle_mut(&mut self) -> *mut c_void { return self.handle; } } @@ -85,7 +83,7 @@ pub fn gl_unload_library() { pub fn gl_create_context(window: &mut Window, version_major: i32, version_minor: i32, flags: GLContextFlags) -> GLContext { unsafe { - let handle = argus_gl_create_context(window.get_mut_handle(), version_major, version_minor, flags.into()); + let handle = argus_gl_create_context(window.get_handle_mut(), version_major, version_minor, flags.into()); return GLContext { handle }; } } @@ -104,7 +102,7 @@ pub fn gl_is_context_current(context: &GLContext) -> bool { pub fn gl_make_context_current(window: &mut Window, context: &GLContext) { unsafe { - argus_gl_make_context_current(window.get_mut_handle(), context.handle); + argus_gl_make_context_current(window.get_handle_mut(), context.handle); } } @@ -120,7 +118,7 @@ pub fn gl_swap_interval(interval: i32) { pub fn gl_swap_buffers(window: &mut Window) { unsafe { - argus_gl_swap_buffers(window.get_mut_handle()); + argus_gl_swap_buffers(window.get_handle_mut()); } } @@ -133,7 +131,7 @@ pub fn vk_is_supported() -> bool { pub fn vk_create_surface(window: &mut Window, instance: &VkInstance) -> VkSurface { unsafe { let mut surface: *mut c_void = null_mut(); - argus_vk_create_surface(window.get_mut_handle(), instance.handle, &mut surface); + argus_vk_create_surface(window.get_handle_mut(), instance.handle, &mut surface); return VkSurface::of(surface); } } @@ -141,10 +139,10 @@ pub fn vk_create_surface(window: &mut Window, instance: &VkInstance) -> VkSurfac pub fn vk_get_required_instance_extensions(window: &mut Window) -> Vec { unsafe { let mut count: u32 = 0; - argus_vk_get_required_instance_extensions(window.get_mut_handle(), &mut count, null_mut()); + argus_vk_get_required_instance_extensions(window.get_handle_mut(), &mut count, null_mut()); let mut exts = Vec::<*const c_char>::new(); exts.reserve(count as usize); - argus_vk_get_required_instance_extensions(window.get_mut_handle(), null_mut(), exts.as_mut_ptr()); + argus_vk_get_required_instance_extensions(window.get_handle_mut(), null_mut(), exts.as_mut_ptr()); return exts.into_iter().map(|s| cstr_to_string(s)).collect(); } } diff --git a/engine/auxiliary/wm_rustabi/src/argus/wm/display.rs b/engine/auxiliary/wm_rustabi/src/argus/wm/display.rs index 2493eeae..be20f849 100644 --- a/engine/auxiliary/wm_rustabi/src/argus/wm/display.rs +++ b/engine/auxiliary/wm_rustabi/src/argus/wm/display.rs @@ -38,7 +38,7 @@ impl Display { return self.handle; } - fn get_mut_handle(&mut self) -> argus_display_t { + fn get_handle_mut(&mut self) -> argus_display_t { return self.handle; } diff --git a/engine/auxiliary/wm_rustabi/src/argus/wm/window.rs b/engine/auxiliary/wm_rustabi/src/argus/wm/window.rs index c98e8ab9..c88ebcb9 100644 --- a/engine/auxiliary/wm_rustabi/src/argus/wm/window.rs +++ b/engine/auxiliary/wm_rustabi/src/argus/wm/window.rs @@ -17,14 +17,14 @@ */ use std::ffi::c_void; -use std::ptr::{null, null_mut}; +use std::ptr::null_mut; use std::time::Duration; + use num_enum::{IntoPrimitive, TryFromPrimitive}; use lowlevel_rustabi::argus::lowlevel::{ValueAndDirtyFlag, Vector2f, Vector2u}; use lowlevel_rustabi::util::*; -use crate::wm_cabi; use crate::wm_cabi::*; pub struct Window { @@ -62,7 +62,7 @@ pub fn get_window(id: &str) -> Option { } pub fn get_window_handle(window: &mut Window) -> *mut c_void { - return window.get_mut_handle(); + return window.get_handle_mut(); } pub fn get_window_from_handle(handle: *const c_void) -> Option { @@ -80,7 +80,7 @@ impl Window { return self.handle; } - pub(crate) fn get_mut_handle(&mut self) -> argus_window_t { + pub(crate) fn get_handle_mut(&mut self) -> argus_window_t { return self.handle; } @@ -131,25 +131,25 @@ impl Window { pub fn create_child_window(&mut self, id: &str) -> Window { unsafe { - return Window::of(argus_window_create_child_window(self.get_mut_handle(), str_to_cstring(id).as_ptr())); + return Window::of(argus_window_create_child_window(self.get_handle_mut(), str_to_cstring(id).as_ptr())); } } pub fn remove_child(&mut self, child: &Window) { unsafe { - argus_window_remove_child(self.get_mut_handle(), child.handle); + argus_window_remove_child(self.get_handle_mut(), child.handle); } } pub fn update(&mut self, delta: Duration) { unsafe { - argus_window_update(self.get_mut_handle(), delta.as_micros() as u64); + argus_window_update(self.get_handle_mut(), delta.as_micros() as u64); } } pub fn set_title(&mut self, title: &str) { unsafe { - argus_window_set_title(self.get_mut_handle(), str_to_cstring(title).as_ptr()); + argus_window_set_title(self.get_handle_mut(), str_to_cstring(title).as_ptr()); } } @@ -161,14 +161,14 @@ impl Window { pub fn set_fullscreen(&mut self, fullscreen: bool) { unsafe { - argus_window_set_fullscreen(self.get_mut_handle(), fullscreen); + argus_window_set_fullscreen(self.get_handle_mut(), fullscreen); } } pub fn get_resolution(&mut self) -> ValueAndDirtyFlag { unsafe { let mut res: ValueAndDirtyFlag = std::mem::zeroed(); - argus_window_get_resolution(self.get_mut_handle(), &mut res.value, &mut res.dirty); + argus_window_get_resolution(self.get_handle_mut(), &mut res.value, &mut res.dirty); return res; } } @@ -181,7 +181,7 @@ impl Window { pub fn set_windowed_resolution(&mut self, width: u32, height: u32) { unsafe { - argus_window_set_windowed_resolution(self.get_mut_handle(), width, height); + argus_window_set_windowed_resolution(self.get_handle_mut(), width, height); } } @@ -189,20 +189,20 @@ impl Window { pub fn is_vsync_enabled(&mut self) -> ValueAndDirtyFlag { unsafe { let mut res: ValueAndDirtyFlag = std::mem::zeroed(); - argus_window_is_vsync_enabled(self.get_mut_handle(), &mut res.value, &mut res.dirty); + argus_window_is_vsync_enabled(self.get_handle_mut(), &mut res.value, &mut res.dirty); return res; } } pub fn set_vsync_enabled(&mut self, enabled: bool) { unsafe { - argus_window_set_vsync_enabled(self.get_mut_handle(), enabled); + argus_window_set_vsync_enabled(self.get_handle_mut(), enabled); } } pub fn set_windowed_position(&mut self, x: i32, y: i32) { unsafe { - argus_window_set_windowed_position(self.get_mut_handle(), x, y); + argus_window_set_windowed_position(self.get_handle_mut(), x, y); } } @@ -222,7 +222,7 @@ impl Window { pub fn set_mouse_captured(&mut self, captured: bool) { unsafe { - argus_window_set_mouse_captured(self.get_mut_handle(), captured); + argus_window_set_mouse_captured(self.get_handle_mut(), captured); } } @@ -234,7 +234,7 @@ impl Window { pub fn set_mouse_visible(&mut self, visible: bool) { unsafe { - argus_window_set_mouse_visible(self.get_mut_handle(), visible); + argus_window_set_mouse_visible(self.get_handle_mut(), visible); } } @@ -246,7 +246,7 @@ impl Window { pub fn set_mouse_raw_input(&mut self, raw_input: bool) { unsafe { - argus_window_set_mouse_raw_input(self.get_mut_handle(), raw_input); + argus_window_set_mouse_raw_input(self.get_handle_mut(), raw_input); } } @@ -258,19 +258,19 @@ impl Window { pub fn set_close_callback(&mut self, callback: WindowCallback) { unsafe { - argus_window_set_close_callback(self.get_mut_handle(), callback); + argus_window_set_close_callback(self.get_handle_mut(), callback); } } pub fn commit(&mut self) { unsafe { - argus_window_commit(self.get_mut_handle()); + argus_window_commit(self.get_handle_mut()); } } pub fn request_close(&mut self) { unsafe { - argus_window_request_close(self.get_mut_handle()); + argus_window_request_close(self.get_handle_mut()); } } } diff --git a/engine/auxiliary/wm_rustabi/src/wm_cabi/mod.rs b/engine/auxiliary/wm_rustabi/src/wm_cabi/mod.rs index f7b3bd11..cb1312e7 100644 --- a/engine/auxiliary/wm_rustabi/src/wm_cabi/mod.rs +++ b/engine/auxiliary/wm_rustabi/src/wm_cabi/mod.rs @@ -16,6 +16,7 @@ * along with this program. If not, see . */ +#[allow(unused_imports)] pub mod bindings; #[allow(unused_imports)]