/// A format listings are published in, declared in navigation order; the raw value is the search filter token. enum Format: String, CaseIterable, Sendable { /// Single-issue comics. case singleIssues = "single-issues" /// Manga volumes. case manga /// Trade paperbacks. case tradePaperbacks = "trade-paperbacks" /// Hardcovers. case hardcovers } // MARK: - Extensions extension Format { // MARK: Computed /// The format's name as shown in the navigation. var label: String { switch self { case .singleIssues: "Single issues" case .manga: "Manga" case .tradePaperbacks: "Trade paperbacks" case .hardcovers: "Hardcovers" } } /// The path of the search screen filtered to the format. var path: String { "\(String.Route.search)?format=\(rawValue)" } }