///
/// BluetoothCapabilities.swift
/// This file was generated by nitrogen. DO NOT MODIFY THIS FILE.
/// https://github.com/mrousavy/nitro
/// Copyright © Marc Rousavy @ Margelo
///

import NitroModules

/**
 * Represents an instance of `BluetoothCapabilities`, backed by a C++ struct.
 */
public typealias BluetoothCapabilities = margelo.nitro.munimbluetooth.BluetoothCapabilities

public extension BluetoothCapabilities {
  private typealias bridge = margelo.nitro.munimbluetooth.bridge.swift

  /**
   * Create a new instance of `BluetoothCapabilities`.
   */
  init(platform: String, supportsBleCentral: Bool, supportsBlePeripheral: Bool, supportsDescriptors: Bool, supportsIncludedServices: Bool, supportsMtu: Bool, supportsPhy: Bool, supportsBonding: Bool, supportsExtendedAdvertising: Bool, supportsL2cap: Bool, supportsClassicBluetooth: Bool, supportsBackgroundBle: Bool, supportsMultipeerConnectivity: Bool) {
    self.init(std.string(platform), supportsBleCentral, supportsBlePeripheral, supportsDescriptors, supportsIncludedServices, supportsMtu, supportsPhy, supportsBonding, supportsExtendedAdvertising, supportsL2cap, supportsClassicBluetooth, supportsBackgroundBle, supportsMultipeerConnectivity)
  }

  @inline(__always)
  var platform: String {
    return String(self.__platform)
  }
  
  @inline(__always)
  var supportsBleCentral: Bool {
    return self.__supportsBleCentral
  }
  
  @inline(__always)
  var supportsBlePeripheral: Bool {
    return self.__supportsBlePeripheral
  }
  
  @inline(__always)
  var supportsDescriptors: Bool {
    return self.__supportsDescriptors
  }
  
  @inline(__always)
  var supportsIncludedServices: Bool {
    return self.__supportsIncludedServices
  }
  
  @inline(__always)
  var supportsMtu: Bool {
    return self.__supportsMtu
  }
  
  @inline(__always)
  var supportsPhy: Bool {
    return self.__supportsPhy
  }
  
  @inline(__always)
  var supportsBonding: Bool {
    return self.__supportsBonding
  }
  
  @inline(__always)
  var supportsExtendedAdvertising: Bool {
    return self.__supportsExtendedAdvertising
  }
  
  @inline(__always)
  var supportsL2cap: Bool {
    return self.__supportsL2cap
  }
  
  @inline(__always)
  var supportsClassicBluetooth: Bool {
    return self.__supportsClassicBluetooth
  }
  
  @inline(__always)
  var supportsBackgroundBle: Bool {
    return self.__supportsBackgroundBle
  }
  
  @inline(__always)
  var supportsMultipeerConnectivity: Bool {
    return self.__supportsMultipeerConnectivity
  }
}
