Files
swift-hpa/Sources/CliDoc/Nodes/Group.swift

38 lines
795 B
Swift

public struct Group: NodeRepresentable {
@usableFromInline
let node: any NodeRepresentable
@usableFromInline
init(
separator: AnyNode,
node: any NodeRepresentable
) {
if let many = node as? _ManyNode {
self.node = _ManyNode(many.nodes, separator: separator)
} else {
self.node = node
}
}
@inlinable
public init(
separator: any NodeRepresentable,
@NodeBuilder _ build: () -> any NodeRepresentable
) {
self.init(separator: separator.eraseToAnyNode(), node: build())
}
@inlinable
public init(
separator: String = " ",
@NodeBuilder _ build: () -> any NodeRepresentable
) {
self.init(separator: separator.eraseToAnyNode(), node: build())
}
@inlinable
public func render() -> String {
node.render()
}
}