Skip to main content

luaur_cli_lib/methods/
vfs_navigator_update_real_paths.rs

1use 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}