aboutsummaryrefslogtreecommitdiff
path: root/.config/awesome/quarrel/native/src/lenses/calculator.rs
diff options
context:
space:
mode:
authordelta <darkussdelta@gmail.com>2025-07-04 00:38:29 +0200
committerdelta <darkussdelta@gmail.com>2025-07-04 00:38:29 +0200
commitb3530d7c4a102935fa26498a160ee1dc6c1e9c03 (patch)
treed7751206a694bc5de2d6b34b0c077cfcd1855798 /.config/awesome/quarrel/native/src/lenses/calculator.rs
parentdf75ec5ed5e3848c497f0439acb43ec9246ad3e7 (diff)
:3
Diffstat (limited to '.config/awesome/quarrel/native/src/lenses/calculator.rs')
-rw-r--r--.config/awesome/quarrel/native/src/lenses/calculator.rs45
1 files changed, 28 insertions, 17 deletions
diff --git a/.config/awesome/quarrel/native/src/lenses/calculator.rs b/.config/awesome/quarrel/native/src/lenses/calculator.rs
index 07f1ee2..640bdeb 100644
--- a/.config/awesome/quarrel/native/src/lenses/calculator.rs
+++ b/.config/awesome/quarrel/native/src/lenses/calculator.rs
@@ -5,25 +5,36 @@ use cpc::{
};
use mlua::prelude::*;
-use crate::lenses::entry::{
- entries_to_lua_table,
+use crate::lenses::{
Entry,
+ Cache,
+ Lense
};
-pub fn query(lua: &Lua, input: String) -> LuaResult<LuaTable> {
- let result = match eval(input.trim(), true, Unit::Celsius, false) {
- Ok(result) => {
- format!("{result}")
- }
- Err(_) => return lua.create_table(),
- };
+pub struct Calculator;
- Ok(entries_to_lua_table(
- vec![Entry {
- message: result,
- exec: None,
- provider: "Calculator".to_string(),
- }],
- lua,
- ))
+impl Lense for Calculator {
+ const NAME: &str = "Calculator";
+
+ fn get_cache(&self) -> &Cache {
+ &Cache::Stale
+ }
+
+ fn set_cache(&mut self, _: Cache) {}
+
+ fn query(_: &Lua, input: String) -> Result<Vec<Entry>, anyhow::Error> {
+ let result = match eval(input.trim(), true, Unit::Celsius, false) {
+ Ok(result) => {
+ format!("{result}")
+ }
+ Err(err) => { return Err(anyhow::anyhow!(err)); },
+ };
+
+ Ok(vec![Entry {
+ message: result,
+ exec: None,
+ }; 1]
+ )
+ }
}
+