aboutsummaryrefslogtreecommitdiff
path: root/.config/awesome/ui/fresnel/lenses/src/calculator.rs
diff options
context:
space:
mode:
Diffstat (limited to '.config/awesome/ui/fresnel/lenses/src/calculator.rs')
-rw-r--r--.config/awesome/ui/fresnel/lenses/src/calculator.rs25
1 files changed, 25 insertions, 0 deletions
diff --git a/.config/awesome/ui/fresnel/lenses/src/calculator.rs b/.config/awesome/ui/fresnel/lenses/src/calculator.rs
new file mode 100644
index 0000000..792985d
--- /dev/null
+++ b/.config/awesome/ui/fresnel/lenses/src/calculator.rs
@@ -0,0 +1,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,
+ ))
+}