From ee037c123063b20cdca8d155e173bce290dcf82b Mon Sep 17 00:00:00 2001 From: jgr Date: Wed, 19 Feb 2025 17:22:56 -0800 Subject: [PATCH] Switch RoaringBitmap's Codable encoding scheme from a base64-encoded string wrapped in an array to just a single base64-encoded string. --- Sources/SwiftRoaring/RoaringBitmap.swift | 4 ++-- Tests/swiftRoaringTests/swiftRoaringTests.swift | 2 +- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/Sources/SwiftRoaring/RoaringBitmap.swift b/Sources/SwiftRoaring/RoaringBitmap.swift index 71fe636..3ab263b 100644 --- a/Sources/SwiftRoaring/RoaringBitmap.swift +++ b/Sources/SwiftRoaring/RoaringBitmap.swift @@ -753,7 +753,7 @@ public final class RoaringBitmap: Sequence, Equatable, CustomStringConvertible, /// Encodable conformance /// public func encode(to encoder: Encoder) throws { - var container = encoder.unkeyedContainer() + var container = encoder.singleValueContainer() let count = self.sizeInBytes() var data = Data(count: count) @@ -768,7 +768,7 @@ public final class RoaringBitmap: Sequence, Equatable, CustomStringConvertible, /// Decodable conformance /// public init(from decoder: Decoder) throws { - var container = try decoder.unkeyedContainer() + let container = try decoder.singleValueContainer() let buffer = try container.decode(String.self) let data = Data(base64Encoded: buffer) diff --git a/Tests/swiftRoaringTests/swiftRoaringTests.swift b/Tests/swiftRoaringTests/swiftRoaringTests.swift index ba63c0c..3d75f9e 100644 --- a/Tests/swiftRoaringTests/swiftRoaringTests.swift +++ b/Tests/swiftRoaringTests/swiftRoaringTests.swift @@ -332,7 +332,7 @@ class swiftRoaringTests: XCTestCase { let s = String(data: a, encoding: .utf8)! print(s.count) let b = try! dec.decode(RoaringBitmap.self, from: a) - let expected = "[\"AjowAAABAAAAAAAxABAAAAAAAAIABAAGAAgACgAMAA4AEAASABQAFgAYABoAHAAeACAAIgAkACYAKAAqACwALgAwADIANAA2ADgAOgA8AD4AQABCAEQARgBIAEoATABOAFAAUgBUAFYAWABaAFwAXgBgAGIA\"]" + let expected = "\"AjowAAABAAAAAAAxABAAAAAAAAIABAAGAAgACgAMAA4AEAASABQAFgAYABoAHAAeACAAIgAkACYAKAAqACwALgAwADIANAA2ADgAOgA8AD4AQABCAEQARgBIAEoATABOAFAAUgBUAFYAWABaAFwAXgBgAGIA\"" XCTAssert(s == expected)