autosway 0.5.0

Automation program
Documentation
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(())
    }
}