struct HTMLComponent: ExpressibleByStringLiteral, ExpressibleByStringInterpolation, CustomStringConvertible {
struct StringInterpolation: StringInterpolationProtocol {
var output = ""
init(literalCapacity: Int, interpolationCount: Int) {
output.reserveCapacity(literalCapacity * 2)
}
mutating func appendLiteral(_ literal: String) {
output.append(literal)
}
mutating func appendInterpolation(twitter: String) {
output.append("
@\(twitter)")
}
mutating func appendInterpolation(email: String) {
output.append("
\(email)")
}
}
let description: String
init(stringLiteral value: String) {
description = "
\(value)
"
}
init(stringInterpolation: StringInterpolation) {
self.init(stringLiteral: stringInterpolation.output)
}
}
@basthomas, Copenhagen Cocoa, 06-02-2020 33