diff options
| author | delta <darkussdelta@gmail.com> | 2023-04-04 15:43:40 +0200 |
|---|---|---|
| committer | delta <darkussdelta@gmail.com> | 2023-04-04 15:43:40 +0200 |
| commit | f7116d268aff3fae88d8de408e8c807295618a5c (patch) | |
| tree | 6f52530d5799769e6af7c63bc5108f16f9aff742 /.config/awesome/quarrel/native/src/lenses/calculator.rs | |
| parent | f0b32f45746c026d402651013b7e98315d6956a1 (diff) | |
restructure and improve config
Diffstat (limited to '.config/awesome/quarrel/native/src/lenses/calculator.rs')
| -rw-r--r-- | .config/awesome/quarrel/native/src/lenses/calculator.rs | 36 |
1 files changed, 36 insertions, 0 deletions
diff --git a/.config/awesome/quarrel/native/src/lenses/calculator.rs b/.config/awesome/quarrel/native/src/lenses/calculator.rs new file mode 100644 index 0000000..89b738e --- /dev/null +++ b/.config/awesome/quarrel/native/src/lenses/calculator.rs @@ -0,0 +1,36 @@ +// use meval::eval_str; +use cpc::{ + eval, + units::Unit, +}; +use mlua::prelude::*; + +use crate::lenses::entry::{ + entries_to_lua_table, + Entry, +}; + +pub fn query<'a>(lua: &Lua, input: String) -> LuaResult<LuaTable> { + let result = match eval(input.trim(), true, Unit::Celsius, false) { + Ok(result) => { + format!( + "{}{}", + result.value, + match result.unit { + Unit::NoUnit => "".to_owned(), + _ => format!(" {:?}", result.unit), + } + ) + } + Err(_) => return lua.create_table(), + }; + + Ok(entries_to_lua_table( + vec![Entry { + message: result, + exec: None, + provider: "Calculator".to_string(), + }], + lua, + )) +} |
