Skip to content

Commit 802f676

Browse files
Udpate the README
Add more detail around new Codable support
1 parent 2c3283e commit 802f676

File tree

1 file changed

+16
-3
lines changed

1 file changed

+16
-3
lines changed

README.md

Lines changed: 16 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -56,7 +56,20 @@ let dict = [ // [{major 3, minor 0, patch 0,...
5656
]
5757

5858
// SemanticVersion is Codable
59-
let data = try JSONEncoder().encode(v123) // 58 bytes
60-
let decoded = try JSONDecoder().decode(SemanticVersion.self, from: data) // 1.2.3
61-
decoded == v123 // true
59+
// Note: the strategy defaults to `.semverString`
60+
let stringEncoder = JSONEncoder()
61+
stringEncoder.semanticVersionEncodingStrategy = .semverString
62+
let stringDecoder = JSONDecoder()
63+
stringDecoder.semanticVersionDecodingStrategy = .semverString
64+
let stringData = try stringEncoder.encode(v123) // 7 bytes -> "1.2.3", including quotes
65+
let stringDecoded = try stringDecoder.decode(SemanticVersion.self, from: stringData) // 1.2.3
66+
stringDecoded == v123 // true
67+
68+
let memberwiseEncoder = JSONEncoder()
69+
memberwiseEncoder.semanticVersionEncodingStrategy = .memberwise
70+
let memberwiseDecoder = JSONDecoder()
71+
memberwiseDecoder.semanticVersionDecodingStrategy = .memberwise
72+
let memberwiseData = try memberwiseEncoder.encode(v123) // 58 bytes
73+
let memberwiseDecoded = try memberwiseDecoder.decode(SemanticVersion.self, from: memberwiseData) // 1.2.3
74+
memberwiseDecoded == v123 // true
6275
```

0 commit comments

Comments
 (0)