Skip to content

Instantly share code, notes, and snippets.

@sebjvidal
Created May 7, 2026 20:01
Show Gist options
  • Select an option

  • Save sebjvidal/6cfe480ccce613d6225144833a0d4cef to your computer and use it in GitHub Desktop.

Select an option

Save sebjvidal/6cfe480ccce613d6225144833a0d4cef to your computer and use it in GitHub Desktop.
NSLayoutConstraint Result Builder
import UIKit
@resultBuilder
struct NSLayoutConstraintBuilder {
static func buildBlock(_ components: [NSLayoutConstraint]...) -> [NSLayoutConstraint] {
components.flatMap { $0 }
}
static func buildExpression(_ expression: NSLayoutConstraint) -> [NSLayoutConstraint] {
[expression]
}
static func buildExpression(_ expression: [NSLayoutConstraint]) -> [NSLayoutConstraint] {
expression
}
static func buildOptional(_ component: [NSLayoutConstraint]?) -> [NSLayoutConstraint] {
component ?? []
}
static func buildEither(first component: [NSLayoutConstraint]) -> [NSLayoutConstraint] {
component
}
static func buildEither(second component: [NSLayoutConstraint]) -> [NSLayoutConstraint] {
component
}
static func buildArray(_ components: [[NSLayoutConstraint]]) -> [NSLayoutConstraint] {
components.flatMap { $0 }
}
static func buildLimitedAvailability(_ component: [NSLayoutConstraint]) -> [NSLayoutConstraint] {
component
}
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment