LuaDevice macro now uses LuaDeviceCreate trait to create devices from configs

This commit is contained in:
2024-04-29 02:53:21 +02:00
parent 9f636a2572
commit 44a40d4dfa
16 changed files with 116 additions and 84 deletions

View File

@@ -3,7 +3,7 @@ use automation_macro::{LuaDevice, LuaDeviceConfig};
use google_home::traits::OnOff;
use tracing::{debug, error, trace, warn};
use super::Device;
use super::{Device, LuaDeviceCreate};
use crate::config::MqttDeviceConfig;
use crate::device_manager::WrappedDevice;
use crate::error::DeviceConfigError;
@@ -26,12 +26,15 @@ pub struct AudioSetupConfig {
#[derive(Debug, LuaDevice)]
pub struct AudioSetup {
#[config]
config: AudioSetupConfig,
}
impl AudioSetup {
async fn create(config: AudioSetupConfig) -> Result<Self, DeviceConfigError> {
#[async_trait]
impl LuaDeviceCreate for AudioSetup {
type Config = AudioSetupConfig;
type Error = DeviceConfigError;
async fn create(config: Self::Config) -> Result<Self, Self::Error> {
trace!(id = config.identifier, "Setting up AudioSetup");
{