9
9
import Foundation
10
10
11
11
/// Represents a metadata option.
12
- public typealias MetadataOptions = FSMetadataOptions
12
+ public struct MetadataOptions : OptionSet {
13
+ /// Size
14
+ static let size = MetadataOptions ( rawValue: 1 << 0 )
15
+
16
+ /// MIME Type
17
+ static let mimeType = MetadataOptions ( rawValue: 1 << 1 )
18
+
19
+ /// Filename
20
+ static let fileName = MetadataOptions ( rawValue: 1 << 2 )
21
+
22
+ /// Width
23
+ static let width = MetadataOptions ( rawValue: 1 << 3 )
24
+
25
+ /// Height
26
+ static let height = MetadataOptions ( rawValue: 1 << 4 )
27
+
28
+ /// Uploaded
29
+ static let uploaded = MetadataOptions ( rawValue: 1 << 5 )
30
+
31
+ /// Writeable
32
+ static let writeable = MetadataOptions ( rawValue: 1 << 6 )
33
+
34
+ /// Cloud
35
+ static let cloud = MetadataOptions ( rawValue: 1 << 7 )
36
+
37
+ /// Source URL
38
+ static let sourceURL = MetadataOptions ( rawValue: 1 << 8 )
39
+
40
+ /// MD5
41
+ static let MD5 = MetadataOptions ( rawValue: 1 << 9 )
42
+
43
+ /// SHA224
44
+ static let SHA224 = MetadataOptions ( rawValue: 1 << 10 )
45
+
46
+ /// SHA256
47
+ static let SHA256 = MetadataOptions ( rawValue: 1 << 11 )
48
+
49
+ /// SHA384
50
+ static let SHA384 = MetadataOptions ( rawValue: 1 << 12 )
51
+
52
+ /// SHA512
53
+ static let SHA512 = MetadataOptions ( rawValue: 1 << 13 )
54
+
55
+ /// Location
56
+ static let location = MetadataOptions ( rawValue: 1 << 14 )
57
+
58
+ /// Path
59
+ static let path = MetadataOptions ( rawValue: 1 << 15 )
60
+
61
+ /// Container
62
+ static let container = MetadataOptions ( rawValue: 1 << 16 )
63
+
64
+ /// Exif
65
+ static let exif = MetadataOptions ( rawValue: 1 << 17 )
66
+
67
+ public let rawValue : Int
68
+
69
+ public init ( rawValue: Int ) {
70
+ self . rawValue = rawValue
71
+ }
72
+ }
13
73
14
74
// MARK: - Internal Functions
15
75
16
76
extension MetadataOptions {
17
77
static func all( ) -> [ MetadataOptions ] {
18
78
return [
19
79
. size, . mimeType, . fileName, . width, . height, . uploaded, . writeable, . cloud, . sourceURL, . MD5, . SHA224,
20
- . SHA256, . SHA384, . SHA512, . location, . path, . container, . exif,
80
+ . SHA256, . SHA384, . SHA512, . location, . path, . container, . exif,
21
81
]
22
82
}
23
83
@@ -37,25 +97,25 @@ extension MetadataOptions {
37
97
private extension MetadataOptions {
38
98
func stringValue( ) -> String ? {
39
99
switch self {
40
- case MetadataOptions . size: return " size "
41
- case MetadataOptions . mimeType: return " mimetype "
42
- case MetadataOptions . fileName: return " filename "
43
- case MetadataOptions . width: return " width "
44
- case MetadataOptions . height: return " height "
45
- case MetadataOptions . uploaded: return " uploaded "
46
- case MetadataOptions . writeable: return " writeable "
47
- case MetadataOptions . cloud: return " cloud "
48
- case MetadataOptions . sourceURL: return " source_url "
49
- case MetadataOptions . MD5: return " md5 "
50
- case MetadataOptions . SHA224: return " sha224 "
51
- case MetadataOptions . SHA256: return " sha256 "
52
- case MetadataOptions . SHA384: return " sha384 "
53
- case MetadataOptions . SHA512: return " sha512 "
54
- case MetadataOptions . location: return " location "
55
- case MetadataOptions . path: return " path "
56
- case MetadataOptions . container: return " container "
57
- case MetadataOptions . exif: return " exif "
58
- default : return nil
100
+ case . size: return " size "
101
+ case . mimeType: return " mimetype "
102
+ case . fileName: return " filename "
103
+ case . width: return " width "
104
+ case . height: return " height "
105
+ case . uploaded: return " uploaded "
106
+ case . writeable: return " writeable "
107
+ case . cloud: return " cloud "
108
+ case . sourceURL: return " source_url "
109
+ case . MD5: return " md5 "
110
+ case . SHA224: return " sha224 "
111
+ case . SHA256: return " sha256 "
112
+ case . SHA384: return " sha384 "
113
+ case . SHA512: return " sha512 "
114
+ case . location: return " location "
115
+ case . path: return " path "
116
+ case . container: return " container "
117
+ case . exif: return " exif "
118
+ default : return nil
59
119
}
60
120
}
61
121
}
0 commit comments