[Enhancement] Lossy codable list property wrapper (#19)

This PR contains the work done to implement the `LossyCodableList` struct and property wrapper, which is used in lossy decoding/encoding processes.

Co-authored-by: Javier Cicchelli <javier@rock-n-code.com>
Reviewed-on: #19
This commit was merged in pull request #19.
This commit is contained in:
2023-05-07 19:40:29 +00:00
parent 7fb72509c2
commit 28c9232962
9 changed files with 371 additions and 0 deletions
@@ -0,0 +1,30 @@
//===----------------------------------------------------------------------===//
//
// This source file is part of the SwiftLibs open source project
//
// Copyright (c) 2023 Röck+Cöde VoF. and the SwiftLibs project authors
// Licensed under the EUPL 1.2 or later.
//
// See LICENSE.txt for license information
// See CONTRIBUTORS.txt for the list of SwiftLibs project authors
//
//===----------------------------------------------------------------------===//
struct TestCodable: Codable, Equatable {
let key: String
let value: Int
}
// MARK: - Initialisers
extension TestCodable {
init?(
key: String? = nil,
value: Int? = nil
) {
guard let key, let value else { return nil }
self.key = key
self.value = value
}
}
@@ -0,0 +1,17 @@
//===----------------------------------------------------------------------===//
//
// This source file is part of the SwiftLibs open source project
//
// Copyright (c) 2023 Röck+Cöde VoF. and the SwiftLibs project authors
// Licensed under the EUPL 1.2 or later.
//
// See LICENSE.txt for license information
// See CONTRIBUTORS.txt for the list of SwiftLibs project authors
//
//===----------------------------------------------------------------------===//
import Core
struct TestCodableList: Codable {
@LossyCodableList var items: [TestCodable]
}