<commit_before>import UIKit

public enum PagingMenuItemSize {
  case Fixed(width: CGFloat, height: CGFloat)
  case SizeToFit(minWidth: CGFloat, height: CGFloat)
}

public extension PagingMenuItemSize {
  
  var width: CGFloat {
    switch self {
    case let .Fixed(width, _): return width
    case let .SizeToFit(minWidth, _): return minWidth
    }
  }
  
  var height: CGFloat {
    switch self {
    case let .Fixed(_, height): return height
    case let .SizeToFit(_, height): return height
    }
  }
  
}

public enum PagingIndicatorOptions {
  case Hidden
  case Visible(
    height: CGFloat,
    zIndex: Int,
    insets: UIEdgeInsets)
}

public enum PagingBorderOptions {
  case Hidden
  case Visible(
    height: CGFloat,
    zIndex: Int,
    insets: UIEdgeInsets)
}

public enum PagingSelectedScrollPosition {
  case Left
  case Right
  case PreferCentered
}

public protocol PagingTheme {
  var font: UIFont { get }
  var textColor: UIColor { get }
  var selectedTextColor: UIColor { get }
  var backgroundColor: UIColor { get }
  var headerBackgroundColor: UIColor { get }
  var borderColor: UIColor { get }
  var indicatorColor: UIColor { get }
}

public protocol PagingOptions {
  var theme: PagingTheme { get }
  var borderOptions: PagingBorderOptions { get }
  var indicatorOptions: PagingIndicatorOptions { get }
  var selectedScrollPosition: PagingSelectedScrollPosition { get }
  var menuInsets: UIEdgeInsets { get }
  var menuItemSize: PagingMenuItemSize { get }
  var menuItemClass: PagingCell.Type { get }
  var menuItemSpacing: CGFloat { get }
}

extension PagingOptions {
  
  var scrollPosition: UICollectionViewScrollPosition {
    switch selectedScrollPosition {
    case .Left:
      return .Left
    case .Right:
      return .Right
    case .PreferCentered:
      return .CenteredHorizontally
    }<commit_msg>Reorder PagingOptions protocol to match REAME<commit_after>import UIKit

public enum PagingMenuItemSize {
  case Fixed(width: CGFloat, height: CGFloat)
  case SizeToFit(minWidth: CGFloat, height: CGFloat)
}

public extension PagingMenuItemSize {
  
  var width: CGFloat {
    switch self {
    case let .Fixed(width, _): return width
    case let .SizeToFit(minWidth, _): return minWidth
    }
  }
  
  var height: CGFloat {
    switch self {
    case let .Fixed(_, height): return height
    case let .SizeToFit(_, height): return height
    }
  }
  
}

public enum PagingIndicatorOptions {
  case Hidden
  case Visible(
    height: CGFloat,
    zIndex: Int,
    insets: UIEdgeInsets)
}

public enum PagingBorderOptions {
  case Hidden
  case Visible(
    height: CGFloat,
    zIndex: Int,
    insets: UIEdgeInsets)
}

public enum PagingSelectedScrollPosition {
  case Left
  case Right
  case PreferCentered
}

public protocol PagingTheme {
  var font: UIFont { get }
  var textColor: UIColor { get }
  var selectedTextColor: UIColor { get }
  var backgroundColor: UIColor { get }
  var headerBackgroundColor: UIColor { get }
  var borderColor: UIColor { get }
  var indicatorColor: UIColor { get }
}

public protocol PagingOptions {
  var menuItemSize: PagingMenuItemSize { get }
  var menuItemClass: PagingCell.Type { get }
  var menuItemSpacing: CGFloat { get }
  var menuInsets: UIEdgeInsets { get }
  var selectedScrollPosition: PagingSelectedScrollPosition { get }
  var indicatorOptions: PagingIndicatorOptions { get }
  var borderOptions: PagingBorderOptions { get }
  var theme: PagingTheme { get }
}

extension PagingOptions {
  
  var scrollPosition: UICollectionViewScrollPosition {
    switch selectedScrollPosition {
    case .Left:
      return .Left
    case .Right:
      return .Right
    case .PreferCentered:
      return .CenteredHorizontally
    }
{'fraction_non_alphanumeric': 0.07061994609164421, 'fraction_numerical': 0.0, 'mean_word_length': 3.4927360774818403, 'pattern_counts': {'":': 0, '<': 3, '<?xml version=': 0, '>': 3, 'https://': 0, 'lorem ipsum': 0, 'www.': 0, 'xml': 0}, 'pii_count': 0, 'substrings_counts': 0, 'word_list_counts': {'cursed_substrings.json': 0, 'profanity_word_list.json': 0, 'sexual_word_list.json': 0, 'zh_pornsignals.json': 0}}
{'dir': 'git-commits-cleaned', 'id': '3812386', 'n_tokens_mistral': 1162, 'n_tokens_neox': 1168, 'n_words': 345}