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

public extension LDP_CustomStyle {
  private typealias bridge = margelo.nitro.lunardatepicker.bridge.swift

  /**
   * Create a new instance of `LDP_CustomStyle`.
   */
  init(titleColor: String, cancelColor: String, dateLabelColor: String, todayLabelColor: String, lunarDateLabelColor: String, selectedTextColor: String, weekendLabelColor: String, specialDayLabelColor: String, monthLabelColor: String, secondColor: String, backgroundColor: String, weekViewBackgroundColor: String, selectedBackgroundColor: String, rangeBackgroundColor: String, gradientColors: [String], borderColor: String) {
    self.init(std.string(titleColor), std.string(cancelColor), std.string(dateLabelColor), std.string(todayLabelColor), std.string(lunarDateLabelColor), std.string(selectedTextColor), std.string(weekendLabelColor), std.string(specialDayLabelColor), std.string(monthLabelColor), std.string(secondColor), std.string(backgroundColor), std.string(weekViewBackgroundColor), std.string(selectedBackgroundColor), std.string(rangeBackgroundColor), { () -> bridge.std__vector_std__string_ in
      var __vector = bridge.create_std__vector_std__string_(gradientColors.count)
      for __item in gradientColors {
        __vector.push_back(std.string(__item))
      }
      return __vector
    }(), std.string(borderColor))
  }

  @inline(__always)
  var titleColor: String {
    return String(self.__titleColor)
  }
  
  @inline(__always)
  var cancelColor: String {
    return String(self.__cancelColor)
  }
  
  @inline(__always)
  var dateLabelColor: String {
    return String(self.__dateLabelColor)
  }
  
  @inline(__always)
  var todayLabelColor: String {
    return String(self.__todayLabelColor)
  }
  
  @inline(__always)
  var lunarDateLabelColor: String {
    return String(self.__lunarDateLabelColor)
  }
  
  @inline(__always)
  var selectedTextColor: String {
    return String(self.__selectedTextColor)
  }
  
  @inline(__always)
  var weekendLabelColor: String {
    return String(self.__weekendLabelColor)
  }
  
  @inline(__always)
  var specialDayLabelColor: String {
    return String(self.__specialDayLabelColor)
  }
  
  @inline(__always)
  var monthLabelColor: String {
    return String(self.__monthLabelColor)
  }
  
  @inline(__always)
  var secondColor: String {
    return String(self.__secondColor)
  }
  
  @inline(__always)
  var backgroundColor: String {
    return String(self.__backgroundColor)
  }
  
  @inline(__always)
  var weekViewBackgroundColor: String {
    return String(self.__weekViewBackgroundColor)
  }
  
  @inline(__always)
  var selectedBackgroundColor: String {
    return String(self.__selectedBackgroundColor)
  }
  
  @inline(__always)
  var rangeBackgroundColor: String {
    return String(self.__rangeBackgroundColor)
  }
  
  @inline(__always)
  var gradientColors: [String] {
    return self.__gradientColors.map({ __item in String(__item) })
  }
  
  @inline(__always)
  var borderColor: String {
    return String(self.__borderColor)
  }
}
