feat: Use same add_methods mechanic for Device as for other traits
All checks were successful
Build and deploy / build (push) Successful in 9m57s
Build and deploy / Deploy container (push) Has been skipped

This commit is contained in:
2025-10-10 03:33:28 +02:00
parent b784cfed4a
commit 76eb63cd97
2 changed files with 15 additions and 5 deletions

View File

@@ -2,6 +2,16 @@ use std::ops::Deref;
// TODO: Enable and disable functions based on query_only and command_only
pub trait Device {
fn add_methods<M: mlua::UserDataMethods<Self>>(methods: &mut M)
where
Self: Sized + crate::device::Device + 'static,
{
methods.add_async_method("get_id", async |_lua, this, _: ()| Ok(this.get_id()));
}
}
impl<T> Device for T where T: crate::device::Device {}
pub trait OnOff {
fn add_methods<M: mlua::UserDataMethods<Self>>(methods: &mut M)
where

View File

@@ -154,13 +154,13 @@ impl quote::ToTokens for Implementation {
Ok(b)
});
methods.add_async_method("get_id", async |_lua, this, _: ()| { Ok(this.get_id()) });
::automation_lib::lua::traits::Device::add_methods(methods);
#traits
#traits
#(
#add_methods(methods);
)*
#(
#add_methods(methods);
)*
}
}
});