aboutsummaryrefslogtreecommitdiff
path: root/.config/awesome/quarrel/native/src/lib.rs
blob: 239ed2f0d96a8bb13d35d13dddd122a96da99485 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
mod lenses;
mod net;
// mod http;
mod moondrop;
mod util;

use lenses::_Lense;
use mlua::prelude::*;

use crate::lenses::Lense;

#[mlua::lua_module]
fn qnative(lua: &Lua) -> LuaResult<LuaTable> {
    let lenses = lua.create_table()?;
    lenses.push(_Lense(lenses::calculator::Calculator::init()))?;
    lenses.push(_Lense(lenses::application::Application::init()))?;

    let util = lua.create_table()?;
    util.set("decode_html", lua.create_function(util::decode_html)?)?;
    util.set("open_file", lua.create_function(util::FileHandle::new)?)?;

    let net = lua.create_table()?;
    net.set("get_essid", lua.create_function(net::get_first_essid)?)?;

    let exports = lua.create_table()?;
    exports.set("lenses", lenses)?;
    exports.set("net", net)?;
    exports.set("util", util)?;

    Ok(exports)
}