cfx_core/
lib.rs

1pub mod events;
2#[doc(hidden)]
3pub mod exports;
4pub mod invoker;
5pub mod ref_funcs;
6pub mod runtime;
7pub mod types {
8    pub use cfx_wasm_rt_types::*;
9
10    pub trait ToMessagePack {
11        fn to_message_pack(&self) -> Vec<u8>;
12    }
13
14    impl<T: serde::Serialize> ToMessagePack for T {
15        fn to_message_pack(&self) -> Vec<u8> {
16            rmp_serde::to_vec(self).unwrap_or_else(|_| vec![])
17        }
18    }
19}
20
21mod ffi {
22    #[link(wasm_import_module = "host")]
23    extern "C" {
24        pub fn log(ptr: i32, len: i32);
25    }
26}
27
28/// Logs a message to the FiveM server or client
29pub fn log<T: AsRef<str>>(message: T) {
30    let msg = message.as_ref();
31    let cstr = std::ffi::CString::new(msg).unwrap();
32    let bytes = cstr.as_bytes_with_nul();
33
34    unsafe {
35        ffi::log(bytes.as_ptr() as _, bytes.len() as _);
36    }
37}