-
Notifications
You must be signed in to change notification settings - Fork 60
Expand file tree
/
Copy pathImageAsset.swift
More file actions
35 lines (30 loc) · 805 Bytes
/
ImageAsset.swift
File metadata and controls
35 lines (30 loc) · 805 Bytes
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
//
// ImageAsset.swift
// JSONCodable
//
// Created by Matthew Cheok on 14/10/15.
//
//
import JSONCodable
struct ImageAsset: Equatable {
let name: String
var uri: URL?
}
func ==(lhs: ImageAsset, rhs: ImageAsset) -> Bool {
return lhs.name == rhs.name && lhs.uri == rhs.uri
}
extension ImageAsset: JSONEncodable {
func toJSON() throws -> AnyObject {
return try JSONEncoder.create{ (encoder) -> Void in
try encoder.encode(name, key: "name")
try encoder.encode(uri, key: "uri", transformer: JSONTransformers.StringToURL)
}
}
}
extension ImageAsset: JSONDecodable {
init(object: JSONObject) throws {
let decoder = JSONDecoder(object: object)
name = try decoder.decode("name")
uri = try decoder.decode("uri", transformer: JSONTransformers.StringToURL)
}
}