     public var mqttReconnOpts: MQTTReconnOpts
     public var mqttWillOpts: MQTTWillOpts?
     public var mqttAuthOpts: MQTTAuthOpts?
+    public var mqttPublishOpts: MQTTPublishOpts?
     
     public var onConnectCallback: ((returnCode: Int) -> Void)?
     public var onDisconnectCallback: ((reasonCode: Int) -> Void)!

            mosquitto_username_pw_set(mosquittoContext.mosquittoHandler, mqttAuthOpts.username.cCharArray, mqttAuthOpts.password.cCharArray)
        }
        
        // start MQTTClient
        let mqttClient = MQTTClient(mosquittoContext: mosquittoContext)
        let host = mqttConfig.host

    public init(username: String, password: String) {
        self.username = username
        self.password = password
    }
}

public struct MQTTPublishOpts {
    public let max_inflight_messages: UInt32
    public let message_retry: UInt32
    
    public init(max_inflight_messages: UInt32, message_retry: UInt32) {
        self.max_inflight_messages = max_inflight_messages
        self.message_retry = message_retry
    }
}

