refactor!: ActionCallback can now receive any amount of arguments
All checks were successful
Build and deploy / build (push) Successful in 12m37s
Build and deploy / Deploy container (push) Successful in 33s

ActionCallback now only has one generics argument that has to implement
IntoLuaMulti, this makes ActionCallback much more flexible as it no
longer always requires two arguments.
This commit is contained in:
2025-09-08 03:30:01 +02:00
parent 613fd63895
commit 2f181e35f3
10 changed files with 71 additions and 75 deletions

View File

@@ -34,7 +34,7 @@ pub struct Config<T: LightState> {
pub mqtt: MqttDeviceConfig,
#[device_config(from_lua, default)]
pub callback: ActionCallback<Light<T>, T>,
pub callback: ActionCallback<(Light<T>, T)>,
#[device_config(from_lua)]
pub client: WrappedAsyncClient,
@@ -165,7 +165,7 @@ impl OnMqtt for Light<StateOnOff> {
self.config
.callback
.call(self, self.state().await.deref())
.call((self.clone(), self.state().await.clone()))
.await;
}
}
@@ -204,7 +204,7 @@ impl OnMqtt for Light<StateBrightness> {
self.config
.callback
.call(self, self.state().await.deref())
.call((self.clone(), self.state().await.clone()))
.await;
}
}
@@ -245,7 +245,7 @@ impl OnMqtt for Light<StateColorTemperature> {
self.config
.callback
.call(self, self.state().await.deref())
.call((self.clone(), self.state().await.clone()))
.await;
}
}

View File

@@ -51,7 +51,7 @@ pub struct Config<T: OutletState> {
pub outlet_type: OutletType,
#[device_config(from_lua, default)]
pub callback: ActionCallback<Outlet<T>, T>,
pub callback: ActionCallback<(Outlet<T>, T)>,
#[device_config(from_lua)]
pub client: WrappedAsyncClient,
@@ -155,7 +155,7 @@ impl OnMqtt for Outlet<StateOnOff> {
self.config
.callback
.call(self, self.state().await.deref())
.call((self.clone(), self.state().await.clone()))
.await;
}
}
@@ -192,7 +192,7 @@ impl OnMqtt for Outlet<StatePower> {
self.config
.callback
.call(self, self.state().await.deref())
.call((self.clone(), self.state().await.clone()))
.await;
}
}