enum HeaderElement { case css(FileResource) case js(file: FileResource, defer: Bool) case jsModule(FileResource) case title(String) case description(String) case charset case viewport } extension HeaderElement { var content: String { switch self { case .css(let file): return "" case .js(let file, let deferred): let deferText = deferred ? " defer" : "" return "" case .jsModule(let file): return "" case .title(let title): return "\(title)" case .description(let description): return "" case .charset: return "" case .viewport: return "" } } }