36 lines
555 B
Swift
36 lines
555 B
Swift
|
|
protocol ContentIcon {
|
|
|
|
static var id: String { get }
|
|
|
|
static var attributes: String { get }
|
|
|
|
static var content: String { get }
|
|
}
|
|
|
|
extension ContentIcon {
|
|
|
|
var id: String {
|
|
Self.id
|
|
}
|
|
|
|
var content: String {
|
|
Self.content
|
|
}
|
|
}
|
|
|
|
extension ContentIcon {
|
|
|
|
static var svgString: String {
|
|
"<svg id=\(id) \(attributes)>\(content)</svg>"
|
|
}
|
|
|
|
static var usageString: String {
|
|
"<svg>\(usageContent)</svg>"
|
|
}
|
|
|
|
static var usageContent: String {
|
|
"<use href='#\(id)'></use>"
|
|
}
|
|
}
|