From e9b0f421afc31c8fb855c4c98bbcb8aa2c267348 Mon Sep 17 00:00:00 2001 From: Stuart Tett Date: Fri, 17 Nov 2017 10:58:52 -0800 Subject: [PATCH] Put image wrapper back --- Source/Shared/Library/ImageWrapper.swift | 32 ++++++++++++++++++++++++ 1 file changed, 32 insertions(+) create mode 100644 Source/Shared/Library/ImageWrapper.swift diff --git a/Source/Shared/Library/ImageWrapper.swift b/Source/Shared/Library/ImageWrapper.swift new file mode 100644 index 0000000..65875f9 --- /dev/null +++ b/Source/Shared/Library/ImageWrapper.swift @@ -0,0 +1,32 @@ +import Foundation + +public struct ImageWrapper: Codable { + public let image: Image + + public enum CodingKeys: String, CodingKey { + case image + } + + public init(image: Image) { + self.image = image + } + + public init(from decoder: Decoder) throws { + let container = try decoder.container(keyedBy: CodingKeys.self) + let data = try container.decode(Data.self, forKey: CodingKeys.image) + guard let image = Image(data: data) else { + throw StorageError.decodingFailed + } + + self.image = image + } + + public func encode(to encoder: Encoder) throws { + var container = encoder.container(keyedBy: CodingKeys.self) + guard let data = image.cache_toData() else { + throw StorageError.encodingFailed + } + + try container.encode(data, forKey: CodingKeys.image) + } +}