use super::*;
use crate::common::{get_config_dir, ConfigDir};
pub struct Core;
impl Module for Core {
fn load(&self, state: &mut State) -> Result<(), LuaError> {
let module = state.lua.create_table()?;
module.set(
"version",
state.lua.create_function(|_, _: ()| Ok(("0", "5", "0")))?,
)?;
module.set(
"config_dir",
state
.lua
.create_function(|_, _: ()| Ok(get_config_dir(ConfigDir::RootDir)))?,
)?;
module.set(
"local_dir",
state
.lua
.create_function(|_, _: ()| Ok(get_config_dir(ConfigDir::LocalDir)))?,
)?;
module.set(
"knife_dir",
state
.lua
.create_function(|_, _: ()| Ok(get_config_dir(ConfigDir::KnifeDir)))?,
)?;
create_module(&state.lua, "autosway", module)?;
Ok(())
}
}