///
/// DataScannerConfiguration.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 `DataScannerConfiguration`, backed by a C++ struct.
 */
public typealias DataScannerConfiguration = margelo.nitro.one.DataScannerConfiguration

public extension DataScannerConfiguration {
  private typealias bridge = margelo.nitro.one.bridge.swift

  /**
   * Create a new instance of `DataScannerConfiguration`.
   */
  init(recognizedDataTypes: [DataScannerRecognizedDataType], qualityLevel: DataScannerQualityLevel, recognizesMultipleItems: Bool, isHighFrameRateTrackingEnabled: Bool, isPinchToZoomEnabled: Bool, isGuidanceEnabled: Bool, isHighlightingEnabled: Bool) {
    self.init({ () -> bridge.std__vector_DataScannerRecognizedDataType_ in
      var __vector = bridge.create_std__vector_DataScannerRecognizedDataType_(recognizedDataTypes.count)
      for __item in recognizedDataTypes {
        __vector.push_back(__item)
      }
      return __vector
    }(), qualityLevel, recognizesMultipleItems, isHighFrameRateTrackingEnabled, isPinchToZoomEnabled, isGuidanceEnabled, isHighlightingEnabled)
  }

  @inline(__always)
  var recognizedDataTypes: [DataScannerRecognizedDataType] {
    return self.__recognizedDataTypes.map({ __item in __item })
  }

  @inline(__always)
  var qualityLevel: DataScannerQualityLevel {
    return self.__qualityLevel
  }

  @inline(__always)
  var recognizesMultipleItems: Bool {
    return self.__recognizesMultipleItems
  }

  @inline(__always)
  var isHighFrameRateTrackingEnabled: Bool {
    return self.__isHighFrameRateTrackingEnabled
  }

  @inline(__always)
  var isPinchToZoomEnabled: Bool {
    return self.__isPinchToZoomEnabled
  }

  @inline(__always)
  var isGuidanceEnabled: Bool {
    return self.__isGuidanceEnabled
  }

  @inline(__always)
  var isHighlightingEnabled: Bool {
    return self.__isHighlightingEnabled
  }
}
