luaur_require/methods/
runtime_navigation_context_to_child.rs1use 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_child(&self, component: &str) -> NavigateResult {
7 unsafe {
8 let config_ptr = self.config;
9 if config_ptr.is_null() {
10 return NavigateResult::NotFound;
11 }
12 let config = &*config_ptr;
13 if config.to_child.is_none() {
14 return NavigateResult::NotFound;
15 }
16
17 let result = (config.to_child.unwrap())(
18 self.l,
19 self.ctx,
20 component.as_ptr() as *const core::ffi::c_char,
21 );
22
23 convert_navigate_result(result as i32)
24 }
25 }
26}