luaur_cli_lib/methods/
vfs_navigator_update_real_paths.rs1use crate::enums::navigation_status::NavigationStatus;
2use crate::functions::get_real_path::get_real_path;
3use crate::functions::is_absolute_path::is_absolute_path;
4use crate::records::vfs_navigator::VfsNavigator;
5
6impl VfsNavigator {
7 pub(crate) fn update_real_paths(&mut self) -> NavigationStatus {
8 let result = get_real_path(self.module_path.clone());
9 let absolute_result = get_real_path(self.absolute_module_path.clone());
10
11 if result.status != NavigationStatus::Success
12 || absolute_result.status != NavigationStatus::Success
13 {
14 return if result.status != NavigationStatus::Success {
15 result.status
16 } else {
17 absolute_result.status
18 };
19 }
20
21 self.real_path = if is_absolute_path(&result.realPath) {
22 format!("{}{}", self.absolute_path_prefix, result.realPath)
23 } else {
24 result.realPath
25 };
26
27 self.absolute_real_path =
28 format!("{}{}", self.absolute_path_prefix, absolute_result.realPath);
29
30 NavigationStatus::Success
31 }
32}