Skip to main content

luaur_repl_cli/functions/
jump_to_alias.rs

1use crate::functions::convert_repl_requirer::{convert, luarequire_NavigateResult};
2use crate::records::repl_requirer::ReplRequirer;
3use core::ffi::{c_char, c_void, CStr};
4use luaur_cli_lib::functions::is_absolute_path::is_absolute_path;
5use luaur_vm::type_aliases::lua_state::lua_State;
6
7pub unsafe fn jump_to_alias(
8    _l: *mut lua_State,
9    ctx: *mut c_void,
10    path: *const c_char,
11) -> luarequire_NavigateResult {
12    let req = &mut *(ctx as *mut ReplRequirer);
13
14    let path = CStr::from_ptr(path).to_string_lossy();
15    if !is_absolute_path(&path) {
16        return luarequire_NavigateResult::NAVIGATE_NOT_FOUND;
17    }
18
19    convert(req.vfs.reset_to_path(&path))
20}