Skip to main content

luaur_require/methods/
runtime_navigation_context_get_config.rs

1use crate::enums::luarequire_write_result::luarequire_WriteResult;
2use crate::records::runtime_navigation_context::RuntimeNavigationContext;
3use core::ffi::{c_char, c_void};
4
5impl RuntimeNavigationContext {
6    pub fn get_config(&self) -> Option<alloc::string::String> {
7        unsafe {
8            let config = &*self.config;
9            let writer = config.get_config?;
10            let initial_buffer_size = 256;
11
12            let safe_writer: extern "C" fn(
13                *mut c_void,
14                *mut c_void,
15                *mut c_char,
16                usize,
17                *mut usize,
18            ) -> luarequire_WriteResult = core::mem::transmute(writer);
19
20            self.get_string_from_c_writer(safe_writer, initial_buffer_size)
21        }
22    }
23}