enum PageIcon: CaseIterable { case time case elevationUp case elevationDown case distance case calories case download case externalLink case gitLink var icon: String { switch self { case .time: return PageIcon.timeIcon case .elevationUp: return PageIcon.elevationUpIcon case .elevationDown: return PageIcon.elevationDownIcon case .distance: return PageIcon.distanceIcon case .calories: return PageIcon.caloriesIcon case .download: return PageIcon.downloadIcon case .externalLink: return PageIcon.externalLinkIcon case .gitLink: return PageIcon.gitLinkIcon } } var name: String { switch self { case .time: return "icon-clock" case .elevationUp: return "icon-arrow-up" case .elevationDown: return "icon-arrow-down" case .distance: return "icon-sign" case .calories: return "icon-flame" case .download: return "icon-download" case .externalLink: return "icon-external" case .gitLink: return "icon-git" } } } extension PageIcon { private static let timeIcon = """ """ private static let elevationUpIcon = """ """ private static let elevationDownIcon = """ """ private static let distanceIcon = """ """ private static let caloriesIcon = """ """ private static let downloadIcon: String = """ """ private static let externalLinkIcon: String = """ """ private static let gitLinkIcon: String = """ """ }