mirror of
https://github.com/lune-org/lune.git
synced 2025-05-04 10:43:57 +01:00
refactor: validate LuaValue::Integer
/LuaValue::String
types given through 'options' table
This commit is contained in:
parent
34792648b9
commit
1e3f36525f
1 changed files with 22 additions and 6 deletions
|
@ -1,7 +1,9 @@
|
||||||
|
use mlua::ffi::lua_Number;
|
||||||
use mlua::prelude::*;
|
use mlua::prelude::*;
|
||||||
use mlua::Compiler as LuaCompiler;
|
use mlua::Compiler as LuaCompiler;
|
||||||
|
|
||||||
use crate::lune::lua::table::TableBuilder;
|
use crate::lune::lua::table::TableBuilder;
|
||||||
|
// use as LuaNumber;
|
||||||
|
|
||||||
pub fn create(lua: &'static Lua) -> LuaResult<LuaTable> {
|
pub fn create(lua: &'static Lua) -> LuaResult<LuaTable> {
|
||||||
TableBuilder::new(lua)?
|
TableBuilder::new(lua)?
|
||||||
|
@ -19,10 +21,21 @@ fn compile_source<'a>(
|
||||||
let mut debug_level = 1;
|
let mut debug_level = 1;
|
||||||
|
|
||||||
if let Some(options) = options {
|
if let Some(options) = options {
|
||||||
optimization_level = options.raw_get("optimizationLevel")?;
|
optimization_level = match options.raw_get("optimizationLevel")? {
|
||||||
coverage_level = options.raw_get("coverageLevel")?;
|
LuaValue::Integer(val) => val as u8,
|
||||||
debug_level = options.raw_get("debugLevel")?;
|
_ => optimization_level,
|
||||||
}
|
};
|
||||||
|
|
||||||
|
coverage_level = match options.raw_get("coverageLevel")? {
|
||||||
|
LuaValue::Integer(val) => val as u8,
|
||||||
|
_ => coverage_level,
|
||||||
|
};
|
||||||
|
|
||||||
|
debug_level = match options.raw_get("debugLevel")? {
|
||||||
|
LuaValue::Integer(val) => val as u8,
|
||||||
|
_ => debug_level,
|
||||||
|
};
|
||||||
|
};
|
||||||
|
|
||||||
let source_bytecode_bytes = LuaCompiler::default()
|
let source_bytecode_bytes = LuaCompiler::default()
|
||||||
.set_optimization_level(optimization_level)
|
.set_optimization_level(optimization_level)
|
||||||
|
@ -40,10 +53,13 @@ fn load_source<'a>(
|
||||||
lua: &'static Lua,
|
lua: &'static Lua,
|
||||||
(source, options): (LuaString<'a>, Option<LuaTable<'a>>),
|
(source, options): (LuaString<'a>, Option<LuaTable<'a>>),
|
||||||
) -> LuaResult<LuaFunction<'a>> {
|
) -> LuaResult<LuaFunction<'a>> {
|
||||||
let mut lua_debug_name = "".to_string();
|
let mut lua_debug_name = source.to_str()?.to_string();
|
||||||
|
|
||||||
if let Some(options) = options {
|
if let Some(options) = options {
|
||||||
lua_debug_name = options.raw_get("debugName")?
|
lua_debug_name = match options.raw_get("debugName")? {
|
||||||
|
LuaValue::String(val) => val.to_str()?.to_string(),
|
||||||
|
_ => lua_debug_name,
|
||||||
|
};
|
||||||
}
|
}
|
||||||
|
|
||||||
let lua_object = lua
|
let lua_object = lua
|
||||||
|
|
Loading…
Add table
Reference in a new issue