// swiftlint:disable all // Generated using SwiftGen — https://github.com/SwiftGen/SwiftGen {% if platform and storyboards %} {% set accessModifier %}{% if param.publicAccess %}public{% else %}internal{% endif %}{% endset %} {% set isAppKit %}{% if platform == "macOS" %}true{% endif %}{% endset %} // swiftlint:disable sorted_imports import Foundation {% for module in modules where module != env.PRODUCT_MODULE_NAME and module != param.module %} import {{module}} {% endfor %} // swiftlint:disable superfluous_disable_command // swiftlint:disable file_length // MARK: - Storyboard Segues // swiftlint:disable explicit_type_interface identifier_name line_length type_body_length type_name {{accessModifier}} enum {{param.enumName|default:"StoryboardSegue"}} { {% for storyboard in storyboards where storyboard.segues %} {{accessModifier}} enum {{storyboard.name|swiftIdentifier:"pretty"|escapeReservedKeywords}}: String, SegueType { {% for segue in storyboard.segues %} {% set segueID %}{{segue.identifier|swiftIdentifier:"pretty"|lowerFirstWord}}{% endset %} case {{segueID|escapeReservedKeywords}}{% if segueID != segue.identifier %} = "{{segue.identifier}}"{% endif %} {% endfor %} } {% endfor %} } // swiftlint:enable explicit_type_interface identifier_name line_length type_body_length type_name // MARK: - Implementation Details {{accessModifier}} protocol SegueType: RawRepresentable {} {{accessModifier}} extension {% if isAppKit %}NSSeguePerforming{% else %}UIViewController{% endif %} { func perform(segue: S, sender: Any? = nil) where S.RawValue == String { let identifier = {% if isAppKit %}NSStoryboardSegue.Identifier({% endif %}segue.rawValue{% if isAppKit %}){% endif %} performSegue{% if isAppKit %}?{% endif %}(withIdentifier: identifier, sender: sender) } } {{accessModifier}} extension SegueType where RawValue == String { init?(_ segue: {% if isAppKit %}NS{% else %}UI{% endif %}StoryboardSegue) { {% if isAppKit %} #if swift(>=4.2) guard let identifier = segue.identifier else { return nil } #else guard let identifier = segue.identifier?.rawValue else { return nil } #endif {% else %} guard let identifier = segue.identifier else { return nil } {% endif %} self.init(rawValue: identifier) } } {% elif storyboards %} // Mixed AppKit and UIKit storyboard files found, please invoke swiftgen with these separately {% else %} // No storyboard found {% endif %}