// // Feed.swift // ReviewsiTunesKit // // Created by Javier Cicchelli on 17/03/2024. // Copyright © 2024 Röck+Cöde VoF. All rights reserved. // import ReviewsFeedKit public struct Feed { // MARK: Constants let entries: [Review] // MARK: Initialisers public init(entries: [Review]) { self.entries = entries } } // MARK: - Decodable extension Feed: Decodable { // MARK: Enumerations enum FeedKeys: String, CodingKey { case feed } enum EntryKeys: String, CodingKey { case entry } // MARK: Initialisers public init(from decoder: any Decoder) throws { let feed = try decoder.container(keyedBy: FeedKeys.self) let feedEntry = try feed.nestedContainer(keyedBy: EntryKeys.self, forKey: .feed) self.entries = try feedEntry.decode([Review].self, forKey: .entry) } } // MARK: - Encodable extension Feed: Encodable { // MARK: Functions public func encode(to encoder: any Encoder) throws { var feed = encoder.container(keyedBy: FeedKeys.self) var feedEntry = feed.nestedContainer(keyedBy: EntryKeys.self, forKey: .feed) try feedEntry.encode(entries, forKey: .entry) } }