Skip to content

Instantly share code, notes, and snippets.

@achernoprudov
Last active July 27, 2021 12:13
Show Gist options
  • Save achernoprudov/fbff51abfb17c3dc8a6b8c0511183184 to your computer and use it in GitHub Desktop.
Save achernoprudov/fbff51abfb17c3dc8a6b8c0511183184 to your computer and use it in GitHub Desktop.
Final implementation of the MenuElementsBuilder result builder
@resultBuilder
enum MenuElementsBuilder {
static func buildBlock(_ elements: [UIMenuElement]...) -> [UIMenuElement] {
return elements.flatMap { $0 }
}
static func buildExpression(_ element: UIMenuElement) -> [UIMenuElement] {
return [element]
}
// MARK: - Conditionals
static func buildOptional(_ component: [UIMenuElement]?) -> [UIMenuElement] {
return component ?? []
}
static func buildEither(first elements: [UIMenuElement]) -> [UIMenuElement] {
return elements
}
static func buildEither(second elements: [UIMenuElement]) -> [UIMenuElement] {
return elements
}
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment