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

public extension NativeLinearListLayoutConfig {
  private typealias bridge = margelo.nitro.reactnativelist.bridge.swift

  /**
   * Create a new instance of `NativeLinearListLayoutConfig`.
   */
  init(topInset: Double, bottomInset: Double, itemSpacing: Double, itemHorizontalInset: Double, itemVerticalInset: Double, iosConfig: NativeLinearListLayoutIOSConfig?) {
    self.init(topInset, bottomInset, itemSpacing, itemHorizontalInset, itemVerticalInset, { () -> bridge.std__optional_NativeLinearListLayoutIOSConfig_ in
      if let __unwrappedValue = iosConfig {
        return bridge.create_std__optional_NativeLinearListLayoutIOSConfig_(__unwrappedValue)
      } else {
        return .init()
      }
    }())
  }

  @inline(__always)
  var topInset: Double {
    return self.__topInset
  }
  
  @inline(__always)
  var bottomInset: Double {
    return self.__bottomInset
  }
  
  @inline(__always)
  var itemSpacing: Double {
    return self.__itemSpacing
  }
  
  @inline(__always)
  var itemHorizontalInset: Double {
    return self.__itemHorizontalInset
  }
  
  @inline(__always)
  var itemVerticalInset: Double {
    return self.__itemVerticalInset
  }
  
  @inline(__always)
  var iosConfig: NativeLinearListLayoutIOSConfig? {
    return self.__iosConfig.value
  }
}
