feat: Initial commit
This commit is contained in:
18
Sources/CliDoc/Nodes/AnyNode.swift
Normal file
18
Sources/CliDoc/Nodes/AnyNode.swift
Normal file
@@ -0,0 +1,18 @@
|
||||
/// A type erased node.
|
||||
public struct AnyNode: Node {
|
||||
private var renderNode: () -> String
|
||||
|
||||
public init<N: NodeRepresentable>(_ node: N) {
|
||||
self.renderNode = node.render
|
||||
}
|
||||
|
||||
public var body: some Node {
|
||||
renderNode()
|
||||
}
|
||||
}
|
||||
|
||||
public extension Node {
|
||||
func eraseToAnyNode() -> AnyNode {
|
||||
.init(self)
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user