// import Foundation // import Logging // import Models // import NIO // import PsychrometricClient // // public struct Client { // // /// Add the publish listeners to the MQTT Broker, to be notified of published changes. // public var addListeners: () -> Void // // /// Connect to the MQTT Broker. // public var connect: () -> EventLoopFuture // // public var publishSensor: (SensorPublishRequest) -> EventLoopFuture // // /// Subscribe to appropriate topics / events. // public var subscribe: () -> EventLoopFuture // // /// Disconnect and close the connection to the MQTT Broker. // public var shutdown: () -> EventLoopFuture // // public init( // addListeners: @escaping () -> Void, // connect: @escaping () -> EventLoopFuture, // publishSensor: @escaping (SensorPublishRequest) -> EventLoopFuture, // shutdown: @escaping () -> EventLoopFuture, // subscribe: @escaping () -> EventLoopFuture // ) { // self.addListeners = addListeners // self.connect = connect // self.publishSensor = publishSensor // self.shutdown = shutdown // self.subscribe = subscribe // } // // public enum SensorPublishRequest { // case mixed(State.Sensors.TemperatureHumiditySensor) // case postCoil(State.Sensors.TemperatureHumiditySensor) // case `return`(State.Sensors.TemperatureHumiditySensor) // case supply(State.Sensors.TemperatureHumiditySensor) // } // }