
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>"
    }
}
