From a7f9c5f4f9f6dc6f7438ec9a5f438148a5ac44c2 Mon Sep 17 00:00:00 2001 From: highflowey Date: Fri, 30 Aug 2024 20:38:51 +0330 Subject: [PATCH] move path_to_alias to RequireAlias::from_path --- crates/lune-std/src/globals/require/mod.rs | 4 +- crates/lune-std/src/luaurc.rs | 46 +++++++++++----------- 2 files changed, 26 insertions(+), 24 deletions(-) diff --git a/crates/lune-std/src/globals/require/mod.rs b/crates/lune-std/src/globals/require/mod.rs index 9629da7..7b9415b 100644 --- a/crates/lune-std/src/globals/require/mod.rs +++ b/crates/lune-std/src/globals/require/mod.rs @@ -1,5 +1,5 @@ use crate::{ - luaurc::{path_to_alias, Luaurc}, + luaurc::{Luaurc, RequireAlias}, path::get_parent_path, LuneStandardLibrary, }; @@ -40,7 +40,7 @@ pub enum RequireError { async fn lua_require(lua: &Lua, path: String) -> LuaResult { let require_path_rel = PathBuf::from(path); - let require_alias = path_to_alias(&require_path_rel).into_lua_err()?; + let require_alias = RequireAlias::from_path(&require_path_rel).into_lua_err()?; if let Some(require_alias) = require_alias { if context::RequireContext::std_exists(lua, &require_alias.alias).into_lua_err()? { diff --git a/crates/lune-std/src/luaurc.rs b/crates/lune-std/src/luaurc.rs index 30e8866..246e132 100644 --- a/crates/lune-std/src/luaurc.rs +++ b/crates/lune-std/src/luaurc.rs @@ -36,29 +36,31 @@ pub enum LuaurcError { LuaError(#[from] mlua::Error), } -/// Parses path into `RequireAlias` struct -/// -/// ### Examples -/// -/// `@lune/task` becomes `Some({ alias: "lune", path: "task" })` -/// -/// `../path/script` becomes `None` -pub fn path_to_alias(path: &Path) -> Result, LuaurcError> { - if let Some(aliased_path) = path - .to_str() - .ok_or(LuaurcError::FailedStringToPathConversion)? - .strip_prefix('@') - { - let (alias, path) = aliased_path - .split_once('/') - .ok_or(LuaurcError::UsedAliasWithoutSlash)?; +impl RequireAlias { + /// Parses path into `RequireAlias` struct + /// + /// ### Examples + /// + /// `@lune/task` becomes `Some({ alias: "lune", path: "task" })` + /// + /// `../path/script` becomes `None` + pub fn from_path(path: &Path) -> Result, LuaurcError> { + if let Some(aliased_path) = path + .to_str() + .ok_or(LuaurcError::FailedStringToPathConversion)? + .strip_prefix('@') + { + let (alias, path) = aliased_path + .split_once('/') + .ok_or(LuaurcError::UsedAliasWithoutSlash)?; - Ok(Some(RequireAlias { - alias: alias.to_string(), - path: path.to_string(), - })) - } else { - Ok(None) + Ok(Some(RequireAlias { + alias: alias.to_string(), + path: path.to_string(), + })) + } else { + Ok(None) + } } }