This is a staging environment. For live and up-to-date package information, visit swiftpackageindex.com.

The Swift Package Index logo.Swift Package Index

Track the adoption of Swift 6 strict concurrency checks for data race safety. How many packages are Ready for Swift 6?

Build Information

Successful build of ObjectEncoder, reference 0.2.0 (cee65e), with Swift 6.0 for macOS (SPM) on 8 Jul 2024 12:33:45 UTC.

Swift 6 data race errors: 21

Build Command

env DEVELOPER_DIR=/Applications/Xcode-16.0.0-Beta.2.app xcrun swift build --arch arm64 -Xswiftc -Xfrontend -Xswiftc -stats-output-dir -Xswiftc -Xfrontend -Xswiftc .stats -Xswiftc -strict-concurrency=complete

Build Log

========================================
RunAll
========================================
Builder version: 4.45.2
Interrupt handler set up.
========================================
Checkout
========================================
Clone URL: https://github.com/norio-nomura/ObjectEncoder.git
Reference: 0.2.0
Initialized empty Git repository in /Users/admin/builder/spi-builder-workspace/.git/
From https://github.com/norio-nomura/ObjectEncoder
 * tag               0.2.0      -> FETCH_HEAD
HEAD is now at cee65ea Bump version to 0.2.0
Cloned https://github.com/norio-nomura/ObjectEncoder.git
Revision (git rev-parse @):
cee65eac1234439453874150bc1edfc2dff796f5
SUCCESS checkout https://github.com/norio-nomura/ObjectEncoder.git at 0.2.0
========================================
Build
========================================
Selected platform:         macosSpm
Swift version:             6.0
Building package at path:  $workDir
https://github.com/norio-nomura/ObjectEncoder.git
Running build ...
env DEVELOPER_DIR=/Applications/Xcode-16.0.0-Beta.2.app xcrun swift build --arch arm64 -Xswiftc -Xfrontend -Xswiftc -stats-output-dir -Xswiftc -Xfrontend -Xswiftc .stats -Xswiftc -strict-concurrency=complete
Building for debugging...
[0/2] Write sources
[1/2] Write swift-version--14728B76ED507284.txt
[3/6] Compiling ObjectEncoder JSON.swift
/Users/admin/builder/spi-builder-workspace/Sources/ObjectEncoder/Encoder.swift:397:23: warning: static property 'compatibleWithJSONEncoder' is not concurrency-safe because non-'Sendable' type 'ObjectEncoder.EncodingStrategy<Decimal>' may have shared mutable state; this is an error in the Swift 6 language mode
 28 |     }
 29 |
 30 |     public struct EncodingStrategy<T: Encodable> {
    |                   `- note: consider making generic struct 'EncodingStrategy' conform to the 'Sendable' protocol
 31 |         public typealias Closure = (T, Encoder) throws -> Void
 32 |         public init(closure: @escaping Closure) { self.closure = closure }
    :
395 |
396 | extension ObjectEncoder.EncodingStrategy where T == Decimal {
397 |     public static let compatibleWithJSONEncoder = ObjectEncoder.EncodingStrategy<Decimal>.custom { decimal, encoder in
    |                       |- warning: static property 'compatibleWithJSONEncoder' is not concurrency-safe because non-'Sendable' type 'ObjectEncoder.EncodingStrategy<Decimal>' may have shared mutable state; this is an error in the Swift 6 language mode
    |                       |- note: annotate 'compatibleWithJSONEncoder' with '@MainActor' if property should only be accessed from the main actor
    |                       `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
398 |         encoder.object = NSDecimalNumber(decimal: decimal)
399 |     }
/Users/admin/builder/spi-builder-workspace/Sources/ObjectEncoder/Encoder.swift:403:23: warning: static property 'throwOnNonConformingFloat' is not concurrency-safe because non-'Sendable' type 'ObjectEncoder.EncodingStrategy<Double>' may have shared mutable state; this is an error in the Swift 6 language mode
 28 |     }
 29 |
 30 |     public struct EncodingStrategy<T: Encodable> {
    |                   `- note: consider making generic struct 'EncodingStrategy' conform to the 'Sendable' protocol
 31 |         public typealias Closure = (T, Encoder) throws -> Void
 32 |         public init(closure: @escaping Closure) { self.closure = closure }
    :
401 |
402 | extension ObjectEncoder.EncodingStrategy where T == Double {
403 |     public static let throwOnNonConformingFloat = ObjectEncoder.DoubleEncodingStrategy.custom { double, encoder in
    |                       |- warning: static property 'throwOnNonConformingFloat' is not concurrency-safe because non-'Sendable' type 'ObjectEncoder.EncodingStrategy<Double>' may have shared mutable state; this is an error in the Swift 6 language mode
    |                       |- note: annotate 'throwOnNonConformingFloat' with '@MainActor' if property should only be accessed from the main actor
    |                       `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
404 |         guard !double.isInfinite && !double.isNaN else {
405 |             throw _invalidFloatingPointValue(double, at: encoder.codingPath)
/Users/admin/builder/spi-builder-workspace/Sources/ObjectEncoder/Encoder.swift:428:23: warning: static property 'throwOnNonConformingFloat' is not concurrency-safe because non-'Sendable' type 'ObjectEncoder.EncodingStrategy<Float>' may have shared mutable state; this is an error in the Swift 6 language mode
 28 |     }
 29 |
 30 |     public struct EncodingStrategy<T: Encodable> {
    |                   `- note: consider making generic struct 'EncodingStrategy' conform to the 'Sendable' protocol
 31 |         public typealias Closure = (T, Encoder) throws -> Void
 32 |         public init(closure: @escaping Closure) { self.closure = closure }
    :
426 |
427 | extension ObjectEncoder.EncodingStrategy where T == Float {
428 |     public static let throwOnNonConformingFloat = ObjectEncoder.FloatEncodingStrategy.custom { float, encoder in
    |                       |- warning: static property 'throwOnNonConformingFloat' is not concurrency-safe because non-'Sendable' type 'ObjectEncoder.EncodingStrategy<Float>' may have shared mutable state; this is an error in the Swift 6 language mode
    |                       |- note: annotate 'throwOnNonConformingFloat' with '@MainActor' if property should only be accessed from the main actor
    |                       `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
429 |         guard !float.isInfinite && !float.isNaN else {
430 |             throw _invalidFloatingPointValue(float, at: encoder.codingPath)
/Users/admin/builder/spi-builder-workspace/Sources/ObjectEncoder/Encoder.swift:453:23: warning: static property 'compatibleWithJSONEncoder' is not concurrency-safe because non-'Sendable' type 'ObjectEncoder.EncodingStrategy<URL>' may have shared mutable state; this is an error in the Swift 6 language mode
 28 |     }
 29 |
 30 |     public struct EncodingStrategy<T: Encodable> {
    |                   `- note: consider making generic struct 'EncodingStrategy' conform to the 'Sendable' protocol
 31 |         public typealias Closure = (T, Encoder) throws -> Void
 32 |         public init(closure: @escaping Closure) { self.closure = closure }
    :
451 |
452 | extension ObjectEncoder.EncodingStrategy where T == URL {
453 |     public static let compatibleWithJSONEncoder = ObjectEncoder.EncodingStrategy<URL>.custom { url, encoder in
    |                       |- warning: static property 'compatibleWithJSONEncoder' is not concurrency-safe because non-'Sendable' type 'ObjectEncoder.EncodingStrategy<URL>' may have shared mutable state; this is an error in the Swift 6 language mode
    |                       |- note: annotate 'compatibleWithJSONEncoder' with '@MainActor' if property should only be accessed from the main actor
    |                       `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
454 |         var container = encoder.singleValueContainer()
455 |         try container.encode(url.absoluteString)
/Users/admin/builder/spi-builder-workspace/Sources/ObjectEncoder/Encoder.swift:349:23: warning: static property 'deferredToData' is not concurrency-safe because non-'Sendable' type 'ObjectEncoder.DataEncodingStrategy?' (aka 'Optional<ObjectEncoder.EncodingStrategy<Data>>') may have shared mutable state; this is an error in the Swift 6 language mode
 28 |     }
 29 |
 30 |     public struct EncodingStrategy<T: Encodable> {
    |                   `- note: consider making generic struct 'EncodingStrategy' conform to the 'Sendable' protocol
 31 |         public typealias Closure = (T, Encoder) throws -> Void
 32 |         public init(closure: @escaping Closure) { self.closure = closure }
    :
347 | extension ObjectEncoder.EncodingStrategy where T == Data {
348 |     /// Defer to `Data` for choosing an encoding.
349 |     public static let deferredToData: ObjectEncoder.DataEncodingStrategy? = nil
    |                       |- warning: static property 'deferredToData' is not concurrency-safe because non-'Sendable' type 'ObjectEncoder.DataEncodingStrategy?' (aka 'Optional<ObjectEncoder.EncodingStrategy<Data>>') may have shared mutable state; this is an error in the Swift 6 language mode
    |                       |- note: annotate 'deferredToData' with '@MainActor' if property should only be accessed from the main actor
    |                       `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
350 |
351 |     /// Encoded the `Data` as a Base64-encoded string. This is the default strategy.
/Users/admin/builder/spi-builder-workspace/Sources/ObjectEncoder/Encoder.swift:366:23: warning: static property 'deferredToDate' is not concurrency-safe because non-'Sendable' type 'ObjectEncoder.DateEncodingStrategy?' (aka 'Optional<ObjectEncoder.EncodingStrategy<Date>>') may have shared mutable state; this is an error in the Swift 6 language mode
 28 |     }
 29 |
 30 |     public struct EncodingStrategy<T: Encodable> {
    |                   `- note: consider making generic struct 'EncodingStrategy' conform to the 'Sendable' protocol
 31 |         public typealias Closure = (T, Encoder) throws -> Void
 32 |         public init(closure: @escaping Closure) { self.closure = closure }
    :
364 | extension ObjectEncoder.EncodingStrategy where T == Date {
365 |     /// Defer to `Date` for choosing an encoding. This is the default strategy.
366 |     public static let deferredToDate: ObjectEncoder.DateEncodingStrategy? = nil
    |                       |- warning: static property 'deferredToDate' is not concurrency-safe because non-'Sendable' type 'ObjectEncoder.DateEncodingStrategy?' (aka 'Optional<ObjectEncoder.EncodingStrategy<Date>>') may have shared mutable state; this is an error in the Swift 6 language mode
    |                       |- note: annotate 'deferredToDate' with '@MainActor' if property should only be accessed from the main actor
    |                       `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
367 |
368 |     /// Encode the `Date` as a UNIX timestamp (as a `Double`).
/Users/admin/builder/spi-builder-workspace/Sources/ObjectEncoder/Decoder.swift:402:23: warning: static property 'compatibleWithJSONDecoder' is not concurrency-safe because non-'Sendable' type 'ObjectDecoder.DecodingStrategy<Decimal>' may have shared mutable state; this is an error in the Swift 6 language mode
 26 |     }
 27 |
 28 |     public struct DecodingStrategy<T: Decodable> {
    |                   `- note: consider making generic struct 'DecodingStrategy' conform to the 'Sendable' protocol
 29 |         public typealias Closure = (Decoder) throws -> T
 30 |         public init(closure: @escaping Closure) { self.closure = closure }
    :
400 |
401 | extension ObjectDecoder.DecodingStrategy where T == Decimal {
402 |     public static let compatibleWithJSONDecoder = ObjectDecoder.DecodingStrategy<Decimal>.custom { decoder in
    |                       |- warning: static property 'compatibleWithJSONDecoder' is not concurrency-safe because non-'Sendable' type 'ObjectDecoder.DecodingStrategy<Decimal>' may have shared mutable state; this is an error in the Swift 6 language mode
    |                       |- note: annotate 'compatibleWithJSONDecoder' with '@MainActor' if property should only be accessed from the main actor
    |                       `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
403 |         if let decimal = decoder.object as? Decimal {
404 |             return decimal
/Users/admin/builder/spi-builder-workspace/Sources/ObjectEncoder/Decoder.swift:412:23: warning: static property 'deferredToDouble' is not concurrency-safe because non-'Sendable' type 'ObjectDecoder.DoubleDecodingStrategy?' (aka 'Optional<ObjectDecoder.DecodingStrategy<Double>>') may have shared mutable state; this is an error in the Swift 6 language mode
 26 |     }
 27 |
 28 |     public struct DecodingStrategy<T: Decodable> {
    |                   `- note: consider making generic struct 'DecodingStrategy' conform to the 'Sendable' protocol
 29 |         public typealias Closure = (Decoder) throws -> T
 30 |         public init(closure: @escaping Closure) { self.closure = closure }
    :
410 |
411 | extension ObjectDecoder.DecodingStrategy where T == Double {
412 |     public static let deferredToDouble: ObjectDecoder.DoubleDecodingStrategy? = nil
    |                       |- warning: static property 'deferredToDouble' is not concurrency-safe because non-'Sendable' type 'ObjectDecoder.DoubleDecodingStrategy?' (aka 'Optional<ObjectDecoder.DecodingStrategy<Double>>') may have shared mutable state; this is an error in the Swift 6 language mode
    |                       |- note: annotate 'deferredToDouble' with '@MainActor' if property should only be accessed from the main actor
    |                       `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
413 |
414 |     public static func convertNonConformingFloatFromString(_ positiveInfinity: String,
/Users/admin/builder/spi-builder-workspace/Sources/ObjectEncoder/Decoder.swift:435:23: warning: static property 'deferredToFloat' is not concurrency-safe because non-'Sendable' type 'ObjectDecoder.FloatDecodingStrategy?' (aka 'Optional<ObjectDecoder.DecodingStrategy<Float>>') may have shared mutable state; this is an error in the Swift 6 language mode
 26 |     }
 27 |
 28 |     public struct DecodingStrategy<T: Decodable> {
    |                   `- note: consider making generic struct 'DecodingStrategy' conform to the 'Sendable' protocol
 29 |         public typealias Closure = (Decoder) throws -> T
 30 |         public init(closure: @escaping Closure) { self.closure = closure }
    :
433 |
434 | extension ObjectDecoder.DecodingStrategy where T == Float {
435 |     public static let deferredToFloat: ObjectDecoder.FloatDecodingStrategy? = nil
    |                       |- warning: static property 'deferredToFloat' is not concurrency-safe because non-'Sendable' type 'ObjectDecoder.FloatDecodingStrategy?' (aka 'Optional<ObjectDecoder.DecodingStrategy<Float>>') may have shared mutable state; this is an error in the Swift 6 language mode
    |                       |- note: annotate 'deferredToFloat' with '@MainActor' if property should only be accessed from the main actor
    |                       `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
436 |
437 |     public static func convertNonConformingFloatFromString(_ positiveInfinity: String,
/Users/admin/builder/spi-builder-workspace/Sources/ObjectEncoder/Decoder.swift:458:23: warning: static property 'compatibleWithJSONDecoder' is not concurrency-safe because non-'Sendable' type 'ObjectDecoder.DecodingStrategy<URL>' may have shared mutable state; this is an error in the Swift 6 language mode
 26 |     }
 27 |
 28 |     public struct DecodingStrategy<T: Decodable> {
    |                   `- note: consider making generic struct 'DecodingStrategy' conform to the 'Sendable' protocol
 29 |         public typealias Closure = (Decoder) throws -> T
 30 |         public init(closure: @escaping Closure) { self.closure = closure }
    :
456 |
457 | extension ObjectDecoder.DecodingStrategy where T == URL {
458 |     public static let compatibleWithJSONDecoder = ObjectDecoder.DecodingStrategy<URL>.custom { decoder in
    |                       |- warning: static property 'compatibleWithJSONDecoder' is not concurrency-safe because non-'Sendable' type 'ObjectDecoder.DecodingStrategy<URL>' may have shared mutable state; this is an error in the Swift 6 language mode
    |                       |- note: annotate 'compatibleWithJSONDecoder' with '@MainActor' if property should only be accessed from the main actor
    |                       `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
459 |         guard let url = URL(string: try String(from: decoder)) else {
460 |             throw _dataCorrupted(at: decoder.codingPath, "Invalid URL string.")
/Users/admin/builder/spi-builder-workspace/Sources/ObjectEncoder/Decoder.swift:357:23: warning: static property 'deferredToData' is not concurrency-safe because non-'Sendable' type 'ObjectDecoder.DataDecodingStrategy?' (aka 'Optional<ObjectDecoder.DecodingStrategy<Data>>') may have shared mutable state; this is an error in the Swift 6 language mode
 26 |     }
 27 |
 28 |     public struct DecodingStrategy<T: Decodable> {
    |                   `- note: consider making generic struct 'DecodingStrategy' conform to the 'Sendable' protocol
 29 |         public typealias Closure = (Decoder) throws -> T
 30 |         public init(closure: @escaping Closure) { self.closure = closure }
    :
355 | extension ObjectDecoder.DecodingStrategy where T == Data {
356 |     /// Defer to `Data` for decoding.
357 |     public static let deferredToData: ObjectDecoder.DataDecodingStrategy? = nil
    |                       |- warning: static property 'deferredToData' is not concurrency-safe because non-'Sendable' type 'ObjectDecoder.DataDecodingStrategy?' (aka 'Optional<ObjectDecoder.DecodingStrategy<Data>>') may have shared mutable state; this is an error in the Swift 6 language mode
    |                       |- note: annotate 'deferredToData' with '@MainActor' if property should only be accessed from the main actor
    |                       `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
358 |
359 |     /// Decode the `Data` from a Base64-encoded string. This is the default strategy.
/Users/admin/builder/spi-builder-workspace/Sources/ObjectEncoder/Decoder.swift:370:23: warning: static property 'deferredToDate' is not concurrency-safe because non-'Sendable' type 'ObjectDecoder.DateDecodingStrategy?' (aka 'Optional<ObjectDecoder.DecodingStrategy<Date>>') may have shared mutable state; this is an error in the Swift 6 language mode
 26 |     }
 27 |
 28 |     public struct DecodingStrategy<T: Decodable> {
    |                   `- note: consider making generic struct 'DecodingStrategy' conform to the 'Sendable' protocol
 29 |         public typealias Closure = (Decoder) throws -> T
 30 |         public init(closure: @escaping Closure) { self.closure = closure }
    :
368 | extension ObjectDecoder.DecodingStrategy where T == Date {
369 |     /// Defer to `Date` for decoding.
370 |     public static let deferredToDate: ObjectDecoder.DateDecodingStrategy? = nil
    |                       |- warning: static property 'deferredToDate' is not concurrency-safe because non-'Sendable' type 'ObjectDecoder.DateDecodingStrategy?' (aka 'Optional<ObjectDecoder.DecodingStrategy<Date>>') may have shared mutable state; this is an error in the Swift 6 language mode
    |                       |- note: annotate 'deferredToDate' with '@MainActor' if property should only be accessed from the main actor
    |                       `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
371 |
372 |     /// Decode the `Date` as a UNIX timestamp from a `Double`.
[4/6] Compiling ObjectEncoder Encoder.swift
/Users/admin/builder/spi-builder-workspace/Sources/ObjectEncoder/Encoder.swift:349:23: warning: static property 'deferredToData' is not concurrency-safe because non-'Sendable' type 'ObjectEncoder.DataEncodingStrategy?' (aka 'Optional<ObjectEncoder.EncodingStrategy<Data>>') may have shared mutable state; this is an error in the Swift 6 language mode
 28 |     }
 29 |
 30 |     public struct EncodingStrategy<T: Encodable> {
    |                   `- note: consider making generic struct 'EncodingStrategy' conform to the 'Sendable' protocol
 31 |         public typealias Closure = (T, Encoder) throws -> Void
 32 |         public init(closure: @escaping Closure) { self.closure = closure }
    :
347 | extension ObjectEncoder.EncodingStrategy where T == Data {
348 |     /// Defer to `Data` for choosing an encoding.
349 |     public static let deferredToData: ObjectEncoder.DataEncodingStrategy? = nil
    |                       |- warning: static property 'deferredToData' is not concurrency-safe because non-'Sendable' type 'ObjectEncoder.DataEncodingStrategy?' (aka 'Optional<ObjectEncoder.EncodingStrategy<Data>>') may have shared mutable state; this is an error in the Swift 6 language mode
    |                       |- note: annotate 'deferredToData' with '@MainActor' if property should only be accessed from the main actor
    |                       `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
350 |
351 |     /// Encoded the `Data` as a Base64-encoded string. This is the default strategy.
/Users/admin/builder/spi-builder-workspace/Sources/ObjectEncoder/Encoder.swift:352:23: warning: static property 'base64' is not concurrency-safe because non-'Sendable' type 'ObjectEncoder.EncodingStrategy<Data>' may have shared mutable state; this is an error in the Swift 6 language mode
 28 |     }
 29 |
 30 |     public struct EncodingStrategy<T: Encodable> {
    |                   `- note: consider making generic struct 'EncodingStrategy' conform to the 'Sendable' protocol
 31 |         public typealias Closure = (T, Encoder) throws -> Void
 32 |         public init(closure: @escaping Closure) { self.closure = closure }
    :
350 |
351 |     /// Encoded the `Data` as a Base64-encoded string. This is the default strategy.
352 |     public static let base64 = ObjectEncoder.DataEncodingStrategy.custom {
    |                       |- warning: static property 'base64' is not concurrency-safe because non-'Sendable' type 'ObjectEncoder.EncodingStrategy<Data>' may have shared mutable state; this is an error in the Swift 6 language mode
    |                       |- note: annotate 'base64' with '@MainActor' if property should only be accessed from the main actor
    |                       `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
353 |         try $0.base64EncodedString().encode(to: $1)
354 |     }
/Users/admin/builder/spi-builder-workspace/Sources/ObjectEncoder/Encoder.swift:358:5: warning: var 'iso8601Formatter' is not concurrency-safe because it is non-isolated global shared mutable state; this is an error in the Swift 6 language mode
356 |
357 | @available(OSX 10.12, iOS 10.0, watchOS 3.0, tvOS 10.0, *)
358 | var iso8601Formatter: ISO8601DateFormatter = {
    |     |- warning: var 'iso8601Formatter' is not concurrency-safe because it is non-isolated global shared mutable state; this is an error in the Swift 6 language mode
    |     |- note: convert 'iso8601Formatter' to a 'let' constant to make 'Sendable' shared state immutable
    |     |- note: annotate 'iso8601Formatter' with '@MainActor' if property should only be accessed from the main actor
    |     `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
359 |     let formatter = ISO8601DateFormatter()
360 |     formatter.formatOptions = .withInternetDateTime
/Users/admin/builder/spi-builder-workspace/Sources/ObjectEncoder/Encoder.swift:366:23: warning: static property 'deferredToDate' is not concurrency-safe because non-'Sendable' type 'ObjectEncoder.DateEncodingStrategy?' (aka 'Optional<ObjectEncoder.EncodingStrategy<Date>>') may have shared mutable state; this is an error in the Swift 6 language mode
 28 |     }
 29 |
 30 |     public struct EncodingStrategy<T: Encodable> {
    |                   `- note: consider making generic struct 'EncodingStrategy' conform to the 'Sendable' protocol
 31 |         public typealias Closure = (T, Encoder) throws -> Void
 32 |         public init(closure: @escaping Closure) { self.closure = closure }
    :
364 | extension ObjectEncoder.EncodingStrategy where T == Date {
365 |     /// Defer to `Date` for choosing an encoding. This is the default strategy.
366 |     public static let deferredToDate: ObjectEncoder.DateEncodingStrategy? = nil
    |                       |- warning: static property 'deferredToDate' is not concurrency-safe because non-'Sendable' type 'ObjectEncoder.DateEncodingStrategy?' (aka 'Optional<ObjectEncoder.EncodingStrategy<Date>>') may have shared mutable state; this is an error in the Swift 6 language mode
    |                       |- note: annotate 'deferredToDate' with '@MainActor' if property should only be accessed from the main actor
    |                       `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
367 |
368 |     /// Encode the `Date` as a UNIX timestamp (as a `Double`).
/Users/admin/builder/spi-builder-workspace/Sources/ObjectEncoder/Encoder.swift:369:23: warning: static property 'secondsSince1970' is not concurrency-safe because non-'Sendable' type 'ObjectEncoder.EncodingStrategy<Date>' may have shared mutable state; this is an error in the Swift 6 language mode
 28 |     }
 29 |
 30 |     public struct EncodingStrategy<T: Encodable> {
    |                   `- note: consider making generic struct 'EncodingStrategy' conform to the 'Sendable' protocol
 31 |         public typealias Closure = (T, Encoder) throws -> Void
 32 |         public init(closure: @escaping Closure) { self.closure = closure }
    :
367 |
368 |     /// Encode the `Date` as a UNIX timestamp (as a `Double`).
369 |     public static let secondsSince1970 = ObjectEncoder.DateEncodingStrategy.custom { date, encoder in
    |                       |- warning: static property 'secondsSince1970' is not concurrency-safe because non-'Sendable' type 'ObjectEncoder.EncodingStrategy<Date>' may have shared mutable state; this is an error in the Swift 6 language mode
    |                       |- note: annotate 'secondsSince1970' with '@MainActor' if property should only be accessed from the main actor
    |                       `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
370 |         var container = encoder.singleValueContainer()
371 |         try container.encode(date.timeIntervalSince1970)
/Users/admin/builder/spi-builder-workspace/Sources/ObjectEncoder/Encoder.swift:375:23: warning: static property 'millisecondsSince1970' is not concurrency-safe because non-'Sendable' type 'ObjectEncoder.EncodingStrategy<Date>' may have shared mutable state; this is an error in the Swift 6 language mode
 28 |     }
 29 |
 30 |     public struct EncodingStrategy<T: Encodable> {
    |                   `- note: consider making generic struct 'EncodingStrategy' conform to the 'Sendable' protocol
 31 |         public typealias Closure = (T, Encoder) throws -> Void
 32 |         public init(closure: @escaping Closure) { self.closure = closure }
    :
373 |
374 |     /// Encode the `Date` as UNIX millisecond timestamp (as a `Double`).
375 |     public static let millisecondsSince1970 = ObjectEncoder.DateEncodingStrategy.custom { date, encoder in
    |                       |- warning: static property 'millisecondsSince1970' is not concurrency-safe because non-'Sendable' type 'ObjectEncoder.EncodingStrategy<Date>' may have shared mutable state; this is an error in the Swift 6 language mode
    |                       |- note: annotate 'millisecondsSince1970' with '@MainActor' if property should only be accessed from the main actor
    |                       `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
376 |         var container = encoder.singleValueContainer()
377 |         try container.encode(1000.0 * date.timeIntervalSince1970)
/Users/admin/builder/spi-builder-workspace/Sources/ObjectEncoder/Encoder.swift:382:23: warning: static property 'iso8601' is not concurrency-safe because non-'Sendable' type 'ObjectEncoder.EncodingStrategy<Date>' may have shared mutable state; this is an error in the Swift 6 language mode
 28 |     }
 29 |
 30 |     public struct EncodingStrategy<T: Encodable> {
    |                   `- note: consider making generic struct 'EncodingStrategy' conform to the 'Sendable' protocol
 31 |         public typealias Closure = (T, Encoder) throws -> Void
 32 |         public init(closure: @escaping Closure) { self.closure = closure }
    :
380 |     /// Encode the `Date` as an ISO-8601-formatted string (in RFC 3339 format).
381 |     @available(OSX 10.12, iOS 10.0, watchOS 3.0, tvOS 10.0, *)
382 |     public static let iso8601 = ObjectEncoder.DateEncodingStrategy.custom { date, encoder in
    |                       |- warning: static property 'iso8601' is not concurrency-safe because non-'Sendable' type 'ObjectEncoder.EncodingStrategy<Date>' may have shared mutable state; this is an error in the Swift 6 language mode
    |                       |- note: annotate 'iso8601' with '@MainActor' if property should only be accessed from the main actor
    |                       `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
383 |         var container = encoder.singleValueContainer()
384 |         try container.encode(iso8601Formatter.string(from: date))
/Users/admin/builder/spi-builder-workspace/Sources/ObjectEncoder/Encoder.swift:397:23: warning: static property 'compatibleWithJSONEncoder' is not concurrency-safe because non-'Sendable' type 'ObjectEncoder.EncodingStrategy<Decimal>' may have shared mutable state; this is an error in the Swift 6 language mode
 28 |     }
 29 |
 30 |     public struct EncodingStrategy<T: Encodable> {
    |                   `- note: consider making generic struct 'EncodingStrategy' conform to the 'Sendable' protocol
 31 |         public typealias Closure = (T, Encoder) throws -> Void
 32 |         public init(closure: @escaping Closure) { self.closure = closure }
    :
395 |
396 | extension ObjectEncoder.EncodingStrategy where T == Decimal {
397 |     public static let compatibleWithJSONEncoder = ObjectEncoder.EncodingStrategy<Decimal>.custom { decimal, encoder in
    |                       |- warning: static property 'compatibleWithJSONEncoder' is not concurrency-safe because non-'Sendable' type 'ObjectEncoder.EncodingStrategy<Decimal>' may have shared mutable state; this is an error in the Swift 6 language mode
    |                       |- note: annotate 'compatibleWithJSONEncoder' with '@MainActor' if property should only be accessed from the main actor
    |                       `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
398 |         encoder.object = NSDecimalNumber(decimal: decimal)
399 |     }
/Users/admin/builder/spi-builder-workspace/Sources/ObjectEncoder/Encoder.swift:403:23: warning: static property 'throwOnNonConformingFloat' is not concurrency-safe because non-'Sendable' type 'ObjectEncoder.EncodingStrategy<Double>' may have shared mutable state; this is an error in the Swift 6 language mode
 28 |     }
 29 |
 30 |     public struct EncodingStrategy<T: Encodable> {
    |                   `- note: consider making generic struct 'EncodingStrategy' conform to the 'Sendable' protocol
 31 |         public typealias Closure = (T, Encoder) throws -> Void
 32 |         public init(closure: @escaping Closure) { self.closure = closure }
    :
401 |
402 | extension ObjectEncoder.EncodingStrategy where T == Double {
403 |     public static let throwOnNonConformingFloat = ObjectEncoder.DoubleEncodingStrategy.custom { double, encoder in
    |                       |- warning: static property 'throwOnNonConformingFloat' is not concurrency-safe because non-'Sendable' type 'ObjectEncoder.EncodingStrategy<Double>' may have shared mutable state; this is an error in the Swift 6 language mode
    |                       |- note: annotate 'throwOnNonConformingFloat' with '@MainActor' if property should only be accessed from the main actor
    |                       `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
404 |         guard !double.isInfinite && !double.isNaN else {
405 |             throw _invalidFloatingPointValue(double, at: encoder.codingPath)
/Users/admin/builder/spi-builder-workspace/Sources/ObjectEncoder/Encoder.swift:428:23: warning: static property 'throwOnNonConformingFloat' is not concurrency-safe because non-'Sendable' type 'ObjectEncoder.EncodingStrategy<Float>' may have shared mutable state; this is an error in the Swift 6 language mode
 28 |     }
 29 |
 30 |     public struct EncodingStrategy<T: Encodable> {
    |                   `- note: consider making generic struct 'EncodingStrategy' conform to the 'Sendable' protocol
 31 |         public typealias Closure = (T, Encoder) throws -> Void
 32 |         public init(closure: @escaping Closure) { self.closure = closure }
    :
426 |
427 | extension ObjectEncoder.EncodingStrategy where T == Float {
428 |     public static let throwOnNonConformingFloat = ObjectEncoder.FloatEncodingStrategy.custom { float, encoder in
    |                       |- warning: static property 'throwOnNonConformingFloat' is not concurrency-safe because non-'Sendable' type 'ObjectEncoder.EncodingStrategy<Float>' may have shared mutable state; this is an error in the Swift 6 language mode
    |                       |- note: annotate 'throwOnNonConformingFloat' with '@MainActor' if property should only be accessed from the main actor
    |                       `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
429 |         guard !float.isInfinite && !float.isNaN else {
430 |             throw _invalidFloatingPointValue(float, at: encoder.codingPath)
/Users/admin/builder/spi-builder-workspace/Sources/ObjectEncoder/Encoder.swift:453:23: warning: static property 'compatibleWithJSONEncoder' is not concurrency-safe because non-'Sendable' type 'ObjectEncoder.EncodingStrategy<URL>' may have shared mutable state; this is an error in the Swift 6 language mode
 28 |     }
 29 |
 30 |     public struct EncodingStrategy<T: Encodable> {
    |                   `- note: consider making generic struct 'EncodingStrategy' conform to the 'Sendable' protocol
 31 |         public typealias Closure = (T, Encoder) throws -> Void
 32 |         public init(closure: @escaping Closure) { self.closure = closure }
    :
451 |
452 | extension ObjectEncoder.EncodingStrategy where T == URL {
453 |     public static let compatibleWithJSONEncoder = ObjectEncoder.EncodingStrategy<URL>.custom { url, encoder in
    |                       |- warning: static property 'compatibleWithJSONEncoder' is not concurrency-safe because non-'Sendable' type 'ObjectEncoder.EncodingStrategy<URL>' may have shared mutable state; this is an error in the Swift 6 language mode
    |                       |- note: annotate 'compatibleWithJSONEncoder' with '@MainActor' if property should only be accessed from the main actor
    |                       `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
454 |         var container = encoder.singleValueContainer()
455 |         try container.encode(url.absoluteString)
[5/6] Compiling ObjectEncoder Decoder.swift
/Users/admin/builder/spi-builder-workspace/Sources/ObjectEncoder/Decoder.swift:357:23: warning: static property 'deferredToData' is not concurrency-safe because non-'Sendable' type 'ObjectDecoder.DataDecodingStrategy?' (aka 'Optional<ObjectDecoder.DecodingStrategy<Data>>') may have shared mutable state; this is an error in the Swift 6 language mode
 26 |     }
 27 |
 28 |     public struct DecodingStrategy<T: Decodable> {
    |                   `- note: consider making generic struct 'DecodingStrategy' conform to the 'Sendable' protocol
 29 |         public typealias Closure = (Decoder) throws -> T
 30 |         public init(closure: @escaping Closure) { self.closure = closure }
    :
355 | extension ObjectDecoder.DecodingStrategy where T == Data {
356 |     /// Defer to `Data` for decoding.
357 |     public static let deferredToData: ObjectDecoder.DataDecodingStrategy? = nil
    |                       |- warning: static property 'deferredToData' is not concurrency-safe because non-'Sendable' type 'ObjectDecoder.DataDecodingStrategy?' (aka 'Optional<ObjectDecoder.DecodingStrategy<Data>>') may have shared mutable state; this is an error in the Swift 6 language mode
    |                       |- note: annotate 'deferredToData' with '@MainActor' if property should only be accessed from the main actor
    |                       `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
358 |
359 |     /// Decode the `Data` from a Base64-encoded string. This is the default strategy.
/Users/admin/builder/spi-builder-workspace/Sources/ObjectEncoder/Decoder.swift:360:23: warning: static property 'base64' is not concurrency-safe because non-'Sendable' type 'ObjectDecoder.DecodingStrategy<Data>' may have shared mutable state; this is an error in the Swift 6 language mode
 26 |     }
 27 |
 28 |     public struct DecodingStrategy<T: Decodable> {
    |                   `- note: consider making generic struct 'DecodingStrategy' conform to the 'Sendable' protocol
 29 |         public typealias Closure = (Decoder) throws -> T
 30 |         public init(closure: @escaping Closure) { self.closure = closure }
    :
358 |
359 |     /// Decode the `Data` from a Base64-encoded string. This is the default strategy.
360 |     public static let base64 = ObjectDecoder.DataDecodingStrategy.custom { decoder in
    |                       |- warning: static property 'base64' is not concurrency-safe because non-'Sendable' type 'ObjectDecoder.DecodingStrategy<Data>' may have shared mutable state; this is an error in the Swift 6 language mode
    |                       |- note: annotate 'base64' with '@MainActor' if property should only be accessed from the main actor
    |                       `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
361 |         guard let data = Data(base64Encoded: try String(from: decoder)) else {
362 |             throw _dataCorrupted(at: decoder.codingPath, "Encountered Data is not valid Base64.")
/Users/admin/builder/spi-builder-workspace/Sources/ObjectEncoder/Decoder.swift:370:23: warning: static property 'deferredToDate' is not concurrency-safe because non-'Sendable' type 'ObjectDecoder.DateDecodingStrategy?' (aka 'Optional<ObjectDecoder.DecodingStrategy<Date>>') may have shared mutable state; this is an error in the Swift 6 language mode
 26 |     }
 27 |
 28 |     public struct DecodingStrategy<T: Decodable> {
    |                   `- note: consider making generic struct 'DecodingStrategy' conform to the 'Sendable' protocol
 29 |         public typealias Closure = (Decoder) throws -> T
 30 |         public init(closure: @escaping Closure) { self.closure = closure }
    :
368 | extension ObjectDecoder.DecodingStrategy where T == Date {
369 |     /// Defer to `Date` for decoding.
370 |     public static let deferredToDate: ObjectDecoder.DateDecodingStrategy? = nil
    |                       |- warning: static property 'deferredToDate' is not concurrency-safe because non-'Sendable' type 'ObjectDecoder.DateDecodingStrategy?' (aka 'Optional<ObjectDecoder.DecodingStrategy<Date>>') may have shared mutable state; this is an error in the Swift 6 language mode
    |                       |- note: annotate 'deferredToDate' with '@MainActor' if property should only be accessed from the main actor
    |                       `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
371 |
372 |     /// Decode the `Date` as a UNIX timestamp from a `Double`.
/Users/admin/builder/spi-builder-workspace/Sources/ObjectEncoder/Decoder.swift:373:23: warning: static property 'secondsSince1970' is not concurrency-safe because non-'Sendable' type 'ObjectDecoder.DecodingStrategy<Date>' may have shared mutable state; this is an error in the Swift 6 language mode
 26 |     }
 27 |
 28 |     public struct DecodingStrategy<T: Decodable> {
    |                   `- note: consider making generic struct 'DecodingStrategy' conform to the 'Sendable' protocol
 29 |         public typealias Closure = (Decoder) throws -> T
 30 |         public init(closure: @escaping Closure) { self.closure = closure }
    :
371 |
372 |     /// Decode the `Date` as a UNIX timestamp from a `Double`.
373 |     public static let secondsSince1970 = ObjectDecoder.DateDecodingStrategy.custom { decoder in
    |                       |- warning: static property 'secondsSince1970' is not concurrency-safe because non-'Sendable' type 'ObjectDecoder.DecodingStrategy<Date>' may have shared mutable state; this is an error in the Swift 6 language mode
    |                       |- note: annotate 'secondsSince1970' with '@MainActor' if property should only be accessed from the main actor
    |                       `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
374 |         Date(timeIntervalSince1970: try Double(from: decoder))
375 |     }
/Users/admin/builder/spi-builder-workspace/Sources/ObjectEncoder/Decoder.swift:378:23: warning: static property 'millisecondsSince1970' is not concurrency-safe because non-'Sendable' type 'ObjectDecoder.DecodingStrategy<Date>' may have shared mutable state; this is an error in the Swift 6 language mode
 26 |     }
 27 |
 28 |     public struct DecodingStrategy<T: Decodable> {
    |                   `- note: consider making generic struct 'DecodingStrategy' conform to the 'Sendable' protocol
 29 |         public typealias Closure = (Decoder) throws -> T
 30 |         public init(closure: @escaping Closure) { self.closure = closure }
    :
376 |
377 |     /// Decode the `Date` as UNIX millisecond timestamp from a `Double`.
378 |     public static let millisecondsSince1970 = ObjectDecoder.DateDecodingStrategy.custom { decoder in
    |                       |- warning: static property 'millisecondsSince1970' is not concurrency-safe because non-'Sendable' type 'ObjectDecoder.DecodingStrategy<Date>' may have shared mutable state; this is an error in the Swift 6 language mode
    |                       |- note: annotate 'millisecondsSince1970' with '@MainActor' if property should only be accessed from the main actor
    |                       `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
379 |         Date(timeIntervalSince1970: try Double(from: decoder) / 1000.0)
380 |     }
/Users/admin/builder/spi-builder-workspace/Sources/ObjectEncoder/Decoder.swift:383:23: warning: static property 'iso8601' is not concurrency-safe because non-'Sendable' type 'ObjectDecoder.DecodingStrategy<Date>' may have shared mutable state; this is an error in the Swift 6 language mode
 26 |     }
 27 |
 28 |     public struct DecodingStrategy<T: Decodable> {
    |                   `- note: consider making generic struct 'DecodingStrategy' conform to the 'Sendable' protocol
 29 |         public typealias Closure = (Decoder) throws -> T
 30 |         public init(closure: @escaping Closure) { self.closure = closure }
    :
381 |     /// Decode the `Date` as an ISO-8601-formatted string (in RFC 3339 format).
382 |     @available(OSX 10.12, iOS 10.0, watchOS 3.0, tvOS 10.0, *)
383 |     public static let iso8601 = ObjectDecoder.DateDecodingStrategy.custom { decoder in
    |                       |- warning: static property 'iso8601' is not concurrency-safe because non-'Sendable' type 'ObjectDecoder.DecodingStrategy<Date>' may have shared mutable state; this is an error in the Swift 6 language mode
    |                       |- note: annotate 'iso8601' with '@MainActor' if property should only be accessed from the main actor
    |                       `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
384 |         guard let date = iso8601Formatter.date(from: try String(from: decoder)) else {
385 |             throw _dataCorrupted(at: decoder.codingPath, "Expected date string to be ISO8601-formatted.")
/Users/admin/builder/spi-builder-workspace/Sources/ObjectEncoder/Encoder.swift:358:5: warning: var 'iso8601Formatter' is not concurrency-safe because it is non-isolated global shared mutable state; this is an error in the Swift 6 language mode
356 |
357 | @available(OSX 10.12, iOS 10.0, watchOS 3.0, tvOS 10.0, *)
358 | var iso8601Formatter: ISO8601DateFormatter = {
    |     |- warning: var 'iso8601Formatter' is not concurrency-safe because it is non-isolated global shared mutable state; this is an error in the Swift 6 language mode
    |     |- note: convert 'iso8601Formatter' to a 'let' constant to make 'Sendable' shared state immutable
    |     |- note: annotate 'iso8601Formatter' with '@MainActor' if property should only be accessed from the main actor
    |     `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
359 |     let formatter = ISO8601DateFormatter()
360 |     formatter.formatOptions = .withInternetDateTime
/Users/admin/builder/spi-builder-workspace/Sources/ObjectEncoder/Decoder.swift:402:23: warning: static property 'compatibleWithJSONDecoder' is not concurrency-safe because non-'Sendable' type 'ObjectDecoder.DecodingStrategy<Decimal>' may have shared mutable state; this is an error in the Swift 6 language mode
 26 |     }
 27 |
 28 |     public struct DecodingStrategy<T: Decodable> {
    |                   `- note: consider making generic struct 'DecodingStrategy' conform to the 'Sendable' protocol
 29 |         public typealias Closure = (Decoder) throws -> T
 30 |         public init(closure: @escaping Closure) { self.closure = closure }
    :
400 |
401 | extension ObjectDecoder.DecodingStrategy where T == Decimal {
402 |     public static let compatibleWithJSONDecoder = ObjectDecoder.DecodingStrategy<Decimal>.custom { decoder in
    |                       |- warning: static property 'compatibleWithJSONDecoder' is not concurrency-safe because non-'Sendable' type 'ObjectDecoder.DecodingStrategy<Decimal>' may have shared mutable state; this is an error in the Swift 6 language mode
    |                       |- note: annotate 'compatibleWithJSONDecoder' with '@MainActor' if property should only be accessed from the main actor
    |                       `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
403 |         if let decimal = decoder.object as? Decimal {
404 |             return decimal
/Users/admin/builder/spi-builder-workspace/Sources/ObjectEncoder/Decoder.swift:412:23: warning: static property 'deferredToDouble' is not concurrency-safe because non-'Sendable' type 'ObjectDecoder.DoubleDecodingStrategy?' (aka 'Optional<ObjectDecoder.DecodingStrategy<Double>>') may have shared mutable state; this is an error in the Swift 6 language mode
 26 |     }
 27 |
 28 |     public struct DecodingStrategy<T: Decodable> {
    |                   `- note: consider making generic struct 'DecodingStrategy' conform to the 'Sendable' protocol
 29 |         public typealias Closure = (Decoder) throws -> T
 30 |         public init(closure: @escaping Closure) { self.closure = closure }
    :
410 |
411 | extension ObjectDecoder.DecodingStrategy where T == Double {
412 |     public static let deferredToDouble: ObjectDecoder.DoubleDecodingStrategy? = nil
    |                       |- warning: static property 'deferredToDouble' is not concurrency-safe because non-'Sendable' type 'ObjectDecoder.DoubleDecodingStrategy?' (aka 'Optional<ObjectDecoder.DecodingStrategy<Double>>') may have shared mutable state; this is an error in the Swift 6 language mode
    |                       |- note: annotate 'deferredToDouble' with '@MainActor' if property should only be accessed from the main actor
    |                       `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
413 |
414 |     public static func convertNonConformingFloatFromString(_ positiveInfinity: String,
/Users/admin/builder/spi-builder-workspace/Sources/ObjectEncoder/Decoder.swift:435:23: warning: static property 'deferredToFloat' is not concurrency-safe because non-'Sendable' type 'ObjectDecoder.FloatDecodingStrategy?' (aka 'Optional<ObjectDecoder.DecodingStrategy<Float>>') may have shared mutable state; this is an error in the Swift 6 language mode
 26 |     }
 27 |
 28 |     public struct DecodingStrategy<T: Decodable> {
    |                   `- note: consider making generic struct 'DecodingStrategy' conform to the 'Sendable' protocol
 29 |         public typealias Closure = (Decoder) throws -> T
 30 |         public init(closure: @escaping Closure) { self.closure = closure }
    :
433 |
434 | extension ObjectDecoder.DecodingStrategy where T == Float {
435 |     public static let deferredToFloat: ObjectDecoder.FloatDecodingStrategy? = nil
    |                       |- warning: static property 'deferredToFloat' is not concurrency-safe because non-'Sendable' type 'ObjectDecoder.FloatDecodingStrategy?' (aka 'Optional<ObjectDecoder.DecodingStrategy<Float>>') may have shared mutable state; this is an error in the Swift 6 language mode
    |                       |- note: annotate 'deferredToFloat' with '@MainActor' if property should only be accessed from the main actor
    |                       `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
436 |
437 |     public static func convertNonConformingFloatFromString(_ positiveInfinity: String,
/Users/admin/builder/spi-builder-workspace/Sources/ObjectEncoder/Decoder.swift:458:23: warning: static property 'compatibleWithJSONDecoder' is not concurrency-safe because non-'Sendable' type 'ObjectDecoder.DecodingStrategy<URL>' may have shared mutable state; this is an error in the Swift 6 language mode
 26 |     }
 27 |
 28 |     public struct DecodingStrategy<T: Decodable> {
    |                   `- note: consider making generic struct 'DecodingStrategy' conform to the 'Sendable' protocol
 29 |         public typealias Closure = (Decoder) throws -> T
 30 |         public init(closure: @escaping Closure) { self.closure = closure }
    :
456 |
457 | extension ObjectDecoder.DecodingStrategy where T == URL {
458 |     public static let compatibleWithJSONDecoder = ObjectDecoder.DecodingStrategy<URL>.custom { decoder in
    |                       |- warning: static property 'compatibleWithJSONDecoder' is not concurrency-safe because non-'Sendable' type 'ObjectDecoder.DecodingStrategy<URL>' may have shared mutable state; this is an error in the Swift 6 language mode
    |                       |- note: annotate 'compatibleWithJSONDecoder' with '@MainActor' if property should only be accessed from the main actor
    |                       `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
459 |         guard let url = URL(string: try String(from: decoder)) else {
460 |             throw _dataCorrupted(at: decoder.codingPath, "Invalid URL string.")
[6/6] Emitting module ObjectEncoder
/Users/admin/builder/spi-builder-workspace/Sources/ObjectEncoder/Decoder.swift:357:23: warning: static property 'deferredToData' is not concurrency-safe because non-'Sendable' type 'ObjectDecoder.DataDecodingStrategy?' (aka 'Optional<ObjectDecoder.DecodingStrategy<Data>>') may have shared mutable state; this is an error in the Swift 6 language mode
 26 |     }
 27 |
 28 |     public struct DecodingStrategy<T: Decodable> {
    |                   `- note: consider making generic struct 'DecodingStrategy' conform to the 'Sendable' protocol
 29 |         public typealias Closure = (Decoder) throws -> T
 30 |         public init(closure: @escaping Closure) { self.closure = closure }
    :
355 | extension ObjectDecoder.DecodingStrategy where T == Data {
356 |     /// Defer to `Data` for decoding.
357 |     public static let deferredToData: ObjectDecoder.DataDecodingStrategy? = nil
    |                       |- warning: static property 'deferredToData' is not concurrency-safe because non-'Sendable' type 'ObjectDecoder.DataDecodingStrategy?' (aka 'Optional<ObjectDecoder.DecodingStrategy<Data>>') may have shared mutable state; this is an error in the Swift 6 language mode
    |                       |- note: annotate 'deferredToData' with '@MainActor' if property should only be accessed from the main actor
    |                       `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
358 |
359 |     /// Decode the `Data` from a Base64-encoded string. This is the default strategy.
/Users/admin/builder/spi-builder-workspace/Sources/ObjectEncoder/Decoder.swift:360:23: warning: static property 'base64' is not concurrency-safe because non-'Sendable' type 'ObjectDecoder.DecodingStrategy<Data>' may have shared mutable state; this is an error in the Swift 6 language mode
 26 |     }
 27 |
 28 |     public struct DecodingStrategy<T: Decodable> {
    |                   `- note: consider making generic struct 'DecodingStrategy' conform to the 'Sendable' protocol
 29 |         public typealias Closure = (Decoder) throws -> T
 30 |         public init(closure: @escaping Closure) { self.closure = closure }
    :
358 |
359 |     /// Decode the `Data` from a Base64-encoded string. This is the default strategy.
360 |     public static let base64 = ObjectDecoder.DataDecodingStrategy.custom { decoder in
    |                       |- warning: static property 'base64' is not concurrency-safe because non-'Sendable' type 'ObjectDecoder.DecodingStrategy<Data>' may have shared mutable state; this is an error in the Swift 6 language mode
    |                       |- note: annotate 'base64' with '@MainActor' if property should only be accessed from the main actor
    |                       `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
361 |         guard let data = Data(base64Encoded: try String(from: decoder)) else {
362 |             throw _dataCorrupted(at: decoder.codingPath, "Encountered Data is not valid Base64.")
/Users/admin/builder/spi-builder-workspace/Sources/ObjectEncoder/Decoder.swift:370:23: warning: static property 'deferredToDate' is not concurrency-safe because non-'Sendable' type 'ObjectDecoder.DateDecodingStrategy?' (aka 'Optional<ObjectDecoder.DecodingStrategy<Date>>') may have shared mutable state; this is an error in the Swift 6 language mode
 26 |     }
 27 |
 28 |     public struct DecodingStrategy<T: Decodable> {
    |                   `- note: consider making generic struct 'DecodingStrategy' conform to the 'Sendable' protocol
 29 |         public typealias Closure = (Decoder) throws -> T
 30 |         public init(closure: @escaping Closure) { self.closure = closure }
    :
368 | extension ObjectDecoder.DecodingStrategy where T == Date {
369 |     /// Defer to `Date` for decoding.
370 |     public static let deferredToDate: ObjectDecoder.DateDecodingStrategy? = nil
    |                       |- warning: static property 'deferredToDate' is not concurrency-safe because non-'Sendable' type 'ObjectDecoder.DateDecodingStrategy?' (aka 'Optional<ObjectDecoder.DecodingStrategy<Date>>') may have shared mutable state; this is an error in the Swift 6 language mode
    |                       |- note: annotate 'deferredToDate' with '@MainActor' if property should only be accessed from the main actor
    |                       `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
371 |
372 |     /// Decode the `Date` as a UNIX timestamp from a `Double`.
/Users/admin/builder/spi-builder-workspace/Sources/ObjectEncoder/Decoder.swift:373:23: warning: static property 'secondsSince1970' is not concurrency-safe because non-'Sendable' type 'ObjectDecoder.DecodingStrategy<Date>' may have shared mutable state; this is an error in the Swift 6 language mode
 26 |     }
 27 |
 28 |     public struct DecodingStrategy<T: Decodable> {
    |                   `- note: consider making generic struct 'DecodingStrategy' conform to the 'Sendable' protocol
 29 |         public typealias Closure = (Decoder) throws -> T
 30 |         public init(closure: @escaping Closure) { self.closure = closure }
    :
371 |
372 |     /// Decode the `Date` as a UNIX timestamp from a `Double`.
373 |     public static let secondsSince1970 = ObjectDecoder.DateDecodingStrategy.custom { decoder in
    |                       |- warning: static property 'secondsSince1970' is not concurrency-safe because non-'Sendable' type 'ObjectDecoder.DecodingStrategy<Date>' may have shared mutable state; this is an error in the Swift 6 language mode
    |                       |- note: annotate 'secondsSince1970' with '@MainActor' if property should only be accessed from the main actor
    |                       `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
374 |         Date(timeIntervalSince1970: try Double(from: decoder))
375 |     }
/Users/admin/builder/spi-builder-workspace/Sources/ObjectEncoder/Decoder.swift:378:23: warning: static property 'millisecondsSince1970' is not concurrency-safe because non-'Sendable' type 'ObjectDecoder.DecodingStrategy<Date>' may have shared mutable state; this is an error in the Swift 6 language mode
 26 |     }
 27 |
 28 |     public struct DecodingStrategy<T: Decodable> {
    |                   `- note: consider making generic struct 'DecodingStrategy' conform to the 'Sendable' protocol
 29 |         public typealias Closure = (Decoder) throws -> T
 30 |         public init(closure: @escaping Closure) { self.closure = closure }
    :
376 |
377 |     /// Decode the `Date` as UNIX millisecond timestamp from a `Double`.
378 |     public static let millisecondsSince1970 = ObjectDecoder.DateDecodingStrategy.custom { decoder in
    |                       |- warning: static property 'millisecondsSince1970' is not concurrency-safe because non-'Sendable' type 'ObjectDecoder.DecodingStrategy<Date>' may have shared mutable state; this is an error in the Swift 6 language mode
    |                       |- note: annotate 'millisecondsSince1970' with '@MainActor' if property should only be accessed from the main actor
    |                       `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
379 |         Date(timeIntervalSince1970: try Double(from: decoder) / 1000.0)
380 |     }
/Users/admin/builder/spi-builder-workspace/Sources/ObjectEncoder/Decoder.swift:383:23: warning: static property 'iso8601' is not concurrency-safe because non-'Sendable' type 'ObjectDecoder.DecodingStrategy<Date>' may have shared mutable state; this is an error in the Swift 6 language mode
 26 |     }
 27 |
 28 |     public struct DecodingStrategy<T: Decodable> {
    |                   `- note: consider making generic struct 'DecodingStrategy' conform to the 'Sendable' protocol
 29 |         public typealias Closure = (Decoder) throws -> T
 30 |         public init(closure: @escaping Closure) { self.closure = closure }
    :
381 |     /// Decode the `Date` as an ISO-8601-formatted string (in RFC 3339 format).
382 |     @available(OSX 10.12, iOS 10.0, watchOS 3.0, tvOS 10.0, *)
383 |     public static let iso8601 = ObjectDecoder.DateDecodingStrategy.custom { decoder in
    |                       |- warning: static property 'iso8601' is not concurrency-safe because non-'Sendable' type 'ObjectDecoder.DecodingStrategy<Date>' may have shared mutable state; this is an error in the Swift 6 language mode
    |                       |- note: annotate 'iso8601' with '@MainActor' if property should only be accessed from the main actor
    |                       `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
384 |         guard let date = iso8601Formatter.date(from: try String(from: decoder)) else {
385 |             throw _dataCorrupted(at: decoder.codingPath, "Expected date string to be ISO8601-formatted.")
/Users/admin/builder/spi-builder-workspace/Sources/ObjectEncoder/Encoder.swift:358:5: warning: var 'iso8601Formatter' is not concurrency-safe because it is non-isolated global shared mutable state; this is an error in the Swift 6 language mode
356 |
357 | @available(OSX 10.12, iOS 10.0, watchOS 3.0, tvOS 10.0, *)
358 | var iso8601Formatter: ISO8601DateFormatter = {
    |     |- warning: var 'iso8601Formatter' is not concurrency-safe because it is non-isolated global shared mutable state; this is an error in the Swift 6 language mode
    |     |- note: convert 'iso8601Formatter' to a 'let' constant to make 'Sendable' shared state immutable
    |     |- note: annotate 'iso8601Formatter' with '@MainActor' if property should only be accessed from the main actor
    |     `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
359 |     let formatter = ISO8601DateFormatter()
360 |     formatter.formatOptions = .withInternetDateTime
/Users/admin/builder/spi-builder-workspace/Sources/ObjectEncoder/Decoder.swift:402:23: warning: static property 'compatibleWithJSONDecoder' is not concurrency-safe because non-'Sendable' type 'ObjectDecoder.DecodingStrategy<Decimal>' may have shared mutable state; this is an error in the Swift 6 language mode
 26 |     }
 27 |
 28 |     public struct DecodingStrategy<T: Decodable> {
    |                   `- note: consider making generic struct 'DecodingStrategy' conform to the 'Sendable' protocol
 29 |         public typealias Closure = (Decoder) throws -> T
 30 |         public init(closure: @escaping Closure) { self.closure = closure }
    :
400 |
401 | extension ObjectDecoder.DecodingStrategy where T == Decimal {
402 |     public static let compatibleWithJSONDecoder = ObjectDecoder.DecodingStrategy<Decimal>.custom { decoder in
    |                       |- warning: static property 'compatibleWithJSONDecoder' is not concurrency-safe because non-'Sendable' type 'ObjectDecoder.DecodingStrategy<Decimal>' may have shared mutable state; this is an error in the Swift 6 language mode
    |                       |- note: annotate 'compatibleWithJSONDecoder' with '@MainActor' if property should only be accessed from the main actor
    |                       `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
403 |         if let decimal = decoder.object as? Decimal {
404 |             return decimal
/Users/admin/builder/spi-builder-workspace/Sources/ObjectEncoder/Decoder.swift:412:23: warning: static property 'deferredToDouble' is not concurrency-safe because non-'Sendable' type 'ObjectDecoder.DoubleDecodingStrategy?' (aka 'Optional<ObjectDecoder.DecodingStrategy<Double>>') may have shared mutable state; this is an error in the Swift 6 language mode
 26 |     }
 27 |
 28 |     public struct DecodingStrategy<T: Decodable> {
    |                   `- note: consider making generic struct 'DecodingStrategy' conform to the 'Sendable' protocol
 29 |         public typealias Closure = (Decoder) throws -> T
 30 |         public init(closure: @escaping Closure) { self.closure = closure }
    :
410 |
411 | extension ObjectDecoder.DecodingStrategy where T == Double {
412 |     public static let deferredToDouble: ObjectDecoder.DoubleDecodingStrategy? = nil
    |                       |- warning: static property 'deferredToDouble' is not concurrency-safe because non-'Sendable' type 'ObjectDecoder.DoubleDecodingStrategy?' (aka 'Optional<ObjectDecoder.DecodingStrategy<Double>>') may have shared mutable state; this is an error in the Swift 6 language mode
    |                       |- note: annotate 'deferredToDouble' with '@MainActor' if property should only be accessed from the main actor
    |                       `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
413 |
414 |     public static func convertNonConformingFloatFromString(_ positiveInfinity: String,
/Users/admin/builder/spi-builder-workspace/Sources/ObjectEncoder/Decoder.swift:435:23: warning: static property 'deferredToFloat' is not concurrency-safe because non-'Sendable' type 'ObjectDecoder.FloatDecodingStrategy?' (aka 'Optional<ObjectDecoder.DecodingStrategy<Float>>') may have shared mutable state; this is an error in the Swift 6 language mode
 26 |     }
 27 |
 28 |     public struct DecodingStrategy<T: Decodable> {
    |                   `- note: consider making generic struct 'DecodingStrategy' conform to the 'Sendable' protocol
 29 |         public typealias Closure = (Decoder) throws -> T
 30 |         public init(closure: @escaping Closure) { self.closure = closure }
    :
433 |
434 | extension ObjectDecoder.DecodingStrategy where T == Float {
435 |     public static let deferredToFloat: ObjectDecoder.FloatDecodingStrategy? = nil
    |                       |- warning: static property 'deferredToFloat' is not concurrency-safe because non-'Sendable' type 'ObjectDecoder.FloatDecodingStrategy?' (aka 'Optional<ObjectDecoder.DecodingStrategy<Float>>') may have shared mutable state; this is an error in the Swift 6 language mode
    |                       |- note: annotate 'deferredToFloat' with '@MainActor' if property should only be accessed from the main actor
    |                       `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
436 |
437 |     public static func convertNonConformingFloatFromString(_ positiveInfinity: String,
/Users/admin/builder/spi-builder-workspace/Sources/ObjectEncoder/Decoder.swift:458:23: warning: static property 'compatibleWithJSONDecoder' is not concurrency-safe because non-'Sendable' type 'ObjectDecoder.DecodingStrategy<URL>' may have shared mutable state; this is an error in the Swift 6 language mode
 26 |     }
 27 |
 28 |     public struct DecodingStrategy<T: Decodable> {
    |                   `- note: consider making generic struct 'DecodingStrategy' conform to the 'Sendable' protocol
 29 |         public typealias Closure = (Decoder) throws -> T
 30 |         public init(closure: @escaping Closure) { self.closure = closure }
    :
456 |
457 | extension ObjectDecoder.DecodingStrategy where T == URL {
458 |     public static let compatibleWithJSONDecoder = ObjectDecoder.DecodingStrategy<URL>.custom { decoder in
    |                       |- warning: static property 'compatibleWithJSONDecoder' is not concurrency-safe because non-'Sendable' type 'ObjectDecoder.DecodingStrategy<URL>' may have shared mutable state; this is an error in the Swift 6 language mode
    |                       |- note: annotate 'compatibleWithJSONDecoder' with '@MainActor' if property should only be accessed from the main actor
    |                       `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
459 |         guard let url = URL(string: try String(from: decoder)) else {
460 |             throw _dataCorrupted(at: decoder.codingPath, "Invalid URL string.")
/Users/admin/builder/spi-builder-workspace/Sources/ObjectEncoder/Encoder.swift:349:23: warning: static property 'deferredToData' is not concurrency-safe because non-'Sendable' type 'ObjectEncoder.DataEncodingStrategy?' (aka 'Optional<ObjectEncoder.EncodingStrategy<Data>>') may have shared mutable state; this is an error in the Swift 6 language mode
 28 |     }
 29 |
 30 |     public struct EncodingStrategy<T: Encodable> {
    |                   `- note: consider making generic struct 'EncodingStrategy' conform to the 'Sendable' protocol
 31 |         public typealias Closure = (T, Encoder) throws -> Void
 32 |         public init(closure: @escaping Closure) { self.closure = closure }
    :
347 | extension ObjectEncoder.EncodingStrategy where T == Data {
348 |     /// Defer to `Data` for choosing an encoding.
349 |     public static let deferredToData: ObjectEncoder.DataEncodingStrategy? = nil
    |                       |- warning: static property 'deferredToData' is not concurrency-safe because non-'Sendable' type 'ObjectEncoder.DataEncodingStrategy?' (aka 'Optional<ObjectEncoder.EncodingStrategy<Data>>') may have shared mutable state; this is an error in the Swift 6 language mode
    |                       |- note: annotate 'deferredToData' with '@MainActor' if property should only be accessed from the main actor
    |                       `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
350 |
351 |     /// Encoded the `Data` as a Base64-encoded string. This is the default strategy.
/Users/admin/builder/spi-builder-workspace/Sources/ObjectEncoder/Encoder.swift:352:23: warning: static property 'base64' is not concurrency-safe because non-'Sendable' type 'ObjectEncoder.EncodingStrategy<Data>' may have shared mutable state; this is an error in the Swift 6 language mode
 28 |     }
 29 |
 30 |     public struct EncodingStrategy<T: Encodable> {
    |                   `- note: consider making generic struct 'EncodingStrategy' conform to the 'Sendable' protocol
 31 |         public typealias Closure = (T, Encoder) throws -> Void
 32 |         public init(closure: @escaping Closure) { self.closure = closure }
    :
350 |
351 |     /// Encoded the `Data` as a Base64-encoded string. This is the default strategy.
352 |     public static let base64 = ObjectEncoder.DataEncodingStrategy.custom {
    |                       |- warning: static property 'base64' is not concurrency-safe because non-'Sendable' type 'ObjectEncoder.EncodingStrategy<Data>' may have shared mutable state; this is an error in the Swift 6 language mode
    |                       |- note: annotate 'base64' with '@MainActor' if property should only be accessed from the main actor
    |                       `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
353 |         try $0.base64EncodedString().encode(to: $1)
354 |     }
/Users/admin/builder/spi-builder-workspace/Sources/ObjectEncoder/Encoder.swift:366:23: warning: static property 'deferredToDate' is not concurrency-safe because non-'Sendable' type 'ObjectEncoder.DateEncodingStrategy?' (aka 'Optional<ObjectEncoder.EncodingStrategy<Date>>') may have shared mutable state; this is an error in the Swift 6 language mode
 28 |     }
 29 |
 30 |     public struct EncodingStrategy<T: Encodable> {
    |                   `- note: consider making generic struct 'EncodingStrategy' conform to the 'Sendable' protocol
 31 |         public typealias Closure = (T, Encoder) throws -> Void
 32 |         public init(closure: @escaping Closure) { self.closure = closure }
    :
364 | extension ObjectEncoder.EncodingStrategy where T == Date {
365 |     /// Defer to `Date` for choosing an encoding. This is the default strategy.
366 |     public static let deferredToDate: ObjectEncoder.DateEncodingStrategy? = nil
    |                       |- warning: static property 'deferredToDate' is not concurrency-safe because non-'Sendable' type 'ObjectEncoder.DateEncodingStrategy?' (aka 'Optional<ObjectEncoder.EncodingStrategy<Date>>') may have shared mutable state; this is an error in the Swift 6 language mode
    |                       |- note: annotate 'deferredToDate' with '@MainActor' if property should only be accessed from the main actor
    |                       `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
367 |
368 |     /// Encode the `Date` as a UNIX timestamp (as a `Double`).
/Users/admin/builder/spi-builder-workspace/Sources/ObjectEncoder/Encoder.swift:369:23: warning: static property 'secondsSince1970' is not concurrency-safe because non-'Sendable' type 'ObjectEncoder.EncodingStrategy<Date>' may have shared mutable state; this is an error in the Swift 6 language mode
 28 |     }
 29 |
 30 |     public struct EncodingStrategy<T: Encodable> {
    |                   `- note: consider making generic struct 'EncodingStrategy' conform to the 'Sendable' protocol
 31 |         public typealias Closure = (T, Encoder) throws -> Void
 32 |         public init(closure: @escaping Closure) { self.closure = closure }
    :
367 |
368 |     /// Encode the `Date` as a UNIX timestamp (as a `Double`).
369 |     public static let secondsSince1970 = ObjectEncoder.DateEncodingStrategy.custom { date, encoder in
    |                       |- warning: static property 'secondsSince1970' is not concurrency-safe because non-'Sendable' type 'ObjectEncoder.EncodingStrategy<Date>' may have shared mutable state; this is an error in the Swift 6 language mode
    |                       |- note: annotate 'secondsSince1970' with '@MainActor' if property should only be accessed from the main actor
    |                       `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
370 |         var container = encoder.singleValueContainer()
371 |         try container.encode(date.timeIntervalSince1970)
/Users/admin/builder/spi-builder-workspace/Sources/ObjectEncoder/Encoder.swift:375:23: warning: static property 'millisecondsSince1970' is not concurrency-safe because non-'Sendable' type 'ObjectEncoder.EncodingStrategy<Date>' may have shared mutable state; this is an error in the Swift 6 language mode
 28 |     }
 29 |
 30 |     public struct EncodingStrategy<T: Encodable> {
    |                   `- note: consider making generic struct 'EncodingStrategy' conform to the 'Sendable' protocol
 31 |         public typealias Closure = (T, Encoder) throws -> Void
 32 |         public init(closure: @escaping Closure) { self.closure = closure }
    :
373 |
374 |     /// Encode the `Date` as UNIX millisecond timestamp (as a `Double`).
375 |     public static let millisecondsSince1970 = ObjectEncoder.DateEncodingStrategy.custom { date, encoder in
    |                       |- warning: static property 'millisecondsSince1970' is not concurrency-safe because non-'Sendable' type 'ObjectEncoder.EncodingStrategy<Date>' may have shared mutable state; this is an error in the Swift 6 language mode
    |                       |- note: annotate 'millisecondsSince1970' with '@MainActor' if property should only be accessed from the main actor
    |                       `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
376 |         var container = encoder.singleValueContainer()
377 |         try container.encode(1000.0 * date.timeIntervalSince1970)
/Users/admin/builder/spi-builder-workspace/Sources/ObjectEncoder/Encoder.swift:382:23: warning: static property 'iso8601' is not concurrency-safe because non-'Sendable' type 'ObjectEncoder.EncodingStrategy<Date>' may have shared mutable state; this is an error in the Swift 6 language mode
 28 |     }
 29 |
 30 |     public struct EncodingStrategy<T: Encodable> {
    |                   `- note: consider making generic struct 'EncodingStrategy' conform to the 'Sendable' protocol
 31 |         public typealias Closure = (T, Encoder) throws -> Void
 32 |         public init(closure: @escaping Closure) { self.closure = closure }
    :
380 |     /// Encode the `Date` as an ISO-8601-formatted string (in RFC 3339 format).
381 |     @available(OSX 10.12, iOS 10.0, watchOS 3.0, tvOS 10.0, *)
382 |     public static let iso8601 = ObjectEncoder.DateEncodingStrategy.custom { date, encoder in
    |                       |- warning: static property 'iso8601' is not concurrency-safe because non-'Sendable' type 'ObjectEncoder.EncodingStrategy<Date>' may have shared mutable state; this is an error in the Swift 6 language mode
    |                       |- note: annotate 'iso8601' with '@MainActor' if property should only be accessed from the main actor
    |                       `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
383 |         var container = encoder.singleValueContainer()
384 |         try container.encode(iso8601Formatter.string(from: date))
/Users/admin/builder/spi-builder-workspace/Sources/ObjectEncoder/Encoder.swift:397:23: warning: static property 'compatibleWithJSONEncoder' is not concurrency-safe because non-'Sendable' type 'ObjectEncoder.EncodingStrategy<Decimal>' may have shared mutable state; this is an error in the Swift 6 language mode
 28 |     }
 29 |
 30 |     public struct EncodingStrategy<T: Encodable> {
    |                   `- note: consider making generic struct 'EncodingStrategy' conform to the 'Sendable' protocol
 31 |         public typealias Closure = (T, Encoder) throws -> Void
 32 |         public init(closure: @escaping Closure) { self.closure = closure }
    :
395 |
396 | extension ObjectEncoder.EncodingStrategy where T == Decimal {
397 |     public static let compatibleWithJSONEncoder = ObjectEncoder.EncodingStrategy<Decimal>.custom { decimal, encoder in
    |                       |- warning: static property 'compatibleWithJSONEncoder' is not concurrency-safe because non-'Sendable' type 'ObjectEncoder.EncodingStrategy<Decimal>' may have shared mutable state; this is an error in the Swift 6 language mode
    |                       |- note: annotate 'compatibleWithJSONEncoder' with '@MainActor' if property should only be accessed from the main actor
    |                       `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
398 |         encoder.object = NSDecimalNumber(decimal: decimal)
399 |     }
/Users/admin/builder/spi-builder-workspace/Sources/ObjectEncoder/Encoder.swift:403:23: warning: static property 'throwOnNonConformingFloat' is not concurrency-safe because non-'Sendable' type 'ObjectEncoder.EncodingStrategy<Double>' may have shared mutable state; this is an error in the Swift 6 language mode
 28 |     }
 29 |
 30 |     public struct EncodingStrategy<T: Encodable> {
    |                   `- note: consider making generic struct 'EncodingStrategy' conform to the 'Sendable' protocol
 31 |         public typealias Closure = (T, Encoder) throws -> Void
 32 |         public init(closure: @escaping Closure) { self.closure = closure }
    :
401 |
402 | extension ObjectEncoder.EncodingStrategy where T == Double {
403 |     public static let throwOnNonConformingFloat = ObjectEncoder.DoubleEncodingStrategy.custom { double, encoder in
    |                       |- warning: static property 'throwOnNonConformingFloat' is not concurrency-safe because non-'Sendable' type 'ObjectEncoder.EncodingStrategy<Double>' may have shared mutable state; this is an error in the Swift 6 language mode
    |                       |- note: annotate 'throwOnNonConformingFloat' with '@MainActor' if property should only be accessed from the main actor
    |                       `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
404 |         guard !double.isInfinite && !double.isNaN else {
405 |             throw _invalidFloatingPointValue(double, at: encoder.codingPath)
/Users/admin/builder/spi-builder-workspace/Sources/ObjectEncoder/Encoder.swift:428:23: warning: static property 'throwOnNonConformingFloat' is not concurrency-safe because non-'Sendable' type 'ObjectEncoder.EncodingStrategy<Float>' may have shared mutable state; this is an error in the Swift 6 language mode
 28 |     }
 29 |
 30 |     public struct EncodingStrategy<T: Encodable> {
    |                   `- note: consider making generic struct 'EncodingStrategy' conform to the 'Sendable' protocol
 31 |         public typealias Closure = (T, Encoder) throws -> Void
 32 |         public init(closure: @escaping Closure) { self.closure = closure }
    :
426 |
427 | extension ObjectEncoder.EncodingStrategy where T == Float {
428 |     public static let throwOnNonConformingFloat = ObjectEncoder.FloatEncodingStrategy.custom { float, encoder in
    |                       |- warning: static property 'throwOnNonConformingFloat' is not concurrency-safe because non-'Sendable' type 'ObjectEncoder.EncodingStrategy<Float>' may have shared mutable state; this is an error in the Swift 6 language mode
    |                       |- note: annotate 'throwOnNonConformingFloat' with '@MainActor' if property should only be accessed from the main actor
    |                       `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
429 |         guard !float.isInfinite && !float.isNaN else {
430 |             throw _invalidFloatingPointValue(float, at: encoder.codingPath)
/Users/admin/builder/spi-builder-workspace/Sources/ObjectEncoder/Encoder.swift:453:23: warning: static property 'compatibleWithJSONEncoder' is not concurrency-safe because non-'Sendable' type 'ObjectEncoder.EncodingStrategy<URL>' may have shared mutable state; this is an error in the Swift 6 language mode
 28 |     }
 29 |
 30 |     public struct EncodingStrategy<T: Encodable> {
    |                   `- note: consider making generic struct 'EncodingStrategy' conform to the 'Sendable' protocol
 31 |         public typealias Closure = (T, Encoder) throws -> Void
 32 |         public init(closure: @escaping Closure) { self.closure = closure }
    :
451 |
452 | extension ObjectEncoder.EncodingStrategy where T == URL {
453 |     public static let compatibleWithJSONEncoder = ObjectEncoder.EncodingStrategy<URL>.custom { url, encoder in
    |                       |- warning: static property 'compatibleWithJSONEncoder' is not concurrency-safe because non-'Sendable' type 'ObjectEncoder.EncodingStrategy<URL>' may have shared mutable state; this is an error in the Swift 6 language mode
    |                       |- note: annotate 'compatibleWithJSONEncoder' with '@MainActor' if property should only be accessed from the main actor
    |                       `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
454 |         var container = encoder.singleValueContainer()
455 |         try container.encode(url.absoluteString)
Build complete! (7.02s)
Build complete.
{
  "dependencies" : [
  ],
  "manifest_display_name" : "ObjectEncoder",
  "name" : "ObjectEncoder",
  "path" : "/Users/admin/builder/spi-builder-workspace",
  "platforms" : [
  ],
  "products" : [
    {
      "name" : "ObjectEncoder",
      "targets" : [
        "ObjectEncoder"
      ],
      "type" : {
        "library" : [
          "automatic"
        ]
      }
    }
  ],
  "targets" : [
    {
      "c99name" : "ObjectEncoderTests",
      "module_type" : "SwiftTarget",
      "name" : "ObjectEncoderTests",
      "path" : "Tests/ObjectEncoderTests",
      "sources" : [
        "ObjectEncoderTests.swift",
        "TestJSONEncoder.swift"
      ],
      "target_dependencies" : [
        "ObjectEncoder"
      ],
      "type" : "test"
    },
    {
      "c99name" : "ObjectEncoder",
      "module_type" : "SwiftTarget",
      "name" : "ObjectEncoder",
      "path" : "Sources/ObjectEncoder",
      "product_memberships" : [
        "ObjectEncoder"
      ],
      "sources" : [
        "Decoder.swift",
        "Encoder.swift",
        "JSON.swift"
      ],
      "type" : "library"
    }
  ],
  "tools_version" : "4.0"
}
Done.
This is a staging environment. For live and up-to-date package information, visit swiftpackageindex.com.