aboutsummaryrefslogtreecommitdiff
path: root/.config/awesome/ui/fresnel/lenses/src/calculator.rs
blob: 792985dee501646d3878b13a769561cfdf0940f7 (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
use meval::eval_str;
use mlua::prelude::*;

use crate::entry::{
    entries_to_lua_table,
    Entry,
};

pub fn query(lua: &Lua, input: String) -> LuaResult<LuaTable> {
    println!("{:?}", input);
    let result = match eval_str(input.trim()) {
        Ok(ok) => ok.to_string(),
        Err(_) => return Ok(lua.create_table()?),
    };

    Ok(entries_to_lua_table(
        vec![Entry {
            message: result,
            exec: None,
            // icon: '',
            provider: "Calculator".to_string(),
        }],
        lua,
    ))
}