Skip to main content

luaur_require/methods/
runtime_navigation_context_to_alias_fallback.rs

1use crate::enums::navigate_result::NavigateResult;
2use crate::functions::convert_navigate_result::convert_navigate_result;
3use crate::records::runtime_navigation_context::RuntimeNavigationContext;
4
5impl RuntimeNavigationContext {
6    pub fn to_alias_fallback(&mut self, alias_unprefixed: &str) -> NavigateResult {
7        unsafe {
8            let config_ptr = self.config;
9            if config_ptr.is_null() {
10                return NavigateResult::NotFound;
11            }
12
13            let config = &*config_ptr;
14            if config.to_alias_fallback.is_none() {
15                return NavigateResult::NotFound;
16            }
17
18            let result = (config.to_alias_fallback.unwrap())(
19                self.l,
20                self.ctx,
21                alias_unprefixed.as_ptr() as *const core::ffi::c_char,
22            );
23
24            convert_navigate_result(result as i32)
25        }
26    }
27}