Skip to main content

luaur_require/methods/
runtime_navigation_context_get_cache_key.rs

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