Skip to content

Commit ce45591

Browse files
authored
Add support for serializing Color.Resolved (#171)
1 parent 17fddec commit ce45591

File tree

3 files changed

+25
-1
lines changed

3 files changed

+25
-1
lines changed

Sources/Defaults/Defaults+Extensions.swift

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -145,6 +145,9 @@ extension Color: Defaults.Serializable {
145145
public static let bridge = Defaults.ColorBridge()
146146
}
147147

148+
@available(macOS 14.0, iOS 17.0, tvOS 17.0, watchOS 9.0, visionOS 1.0, *)
149+
extension Color.Resolved: Defaults.Serializable {}
150+
148151
extension Range: Defaults.RangeSerializable where Bound: Defaults.Serializable {
149152
public static var bridge: Defaults.RangeBridge<Range> { Defaults.RangeBridge() }
150153
}

Tests/DefaultsTests/DefaultsColorTests.swift

Lines changed: 21 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,7 @@ import SwiftUI
22
import Defaults
33
import XCTest
44

5-
@available(iOS 15, tvOS 15, watchOS 8, visionOS 1.0, *)
5+
@available(macOS 12, iOS 15, tvOS 15, watchOS 8, visionOS 1.0, *)
66
final class DefaultsColorTests: XCTestCase {
77
override func setUp() {
88
super.setUp()
@@ -22,3 +22,23 @@ final class DefaultsColorTests: XCTestCase {
2222
XCTAssertEqual(Defaults[key]?.cgColor, fixture.cgColor)
2323
}
2424
}
25+
26+
@available(macOS 14, iOS 17, tvOS 17, watchOS 9, visionOS 1.0, *)
27+
final class DefaultsColorResolvedTests: XCTestCase {
28+
override func setUp() {
29+
super.setUp()
30+
Defaults.removeAll()
31+
}
32+
33+
override func tearDown() {
34+
super.tearDown()
35+
Defaults.removeAll()
36+
}
37+
38+
func test() {
39+
let fixture = Color(.displayP3, red: 1, green: 0.3, blue: 0.7, opacity: 1).resolve(in: .init())
40+
let key = Defaults.Key<Color.Resolved?>("independentColorResolvedKey")
41+
Defaults[key] = fixture
42+
XCTAssertEqual(Defaults[key]?.cgColor, fixture.cgColor)
43+
}
44+
}

readme.md

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -57,6 +57,7 @@ Add `https://github.com/sindresorhus/Defaults` in the [“Swift Package Manager
5757
- `NSColor` (macOS)
5858
- `UIColor` (iOS)
5959
- `Color` [^1] (SwiftUI)
60+
- `Color.Resolved` [^1] (SwiftUI)
6061
- `Codable`
6162
- `NSSecureCoding`
6263
- `Range`, `ClosedRange`

0 commit comments

Comments
 (0)