Skip to content

Commit b380093

Browse files
authored
Use binary parsing fork to support lower OS versions (#19)
This PR uses a [fork](https://github.com/FlickerSoul/swift-binary-parsing) of swift-binary-parsing that supports `.macOS(.v13), .iOS(.v16), .watchOS(.v9), .tvOS(.v16), .visionOS(.v1)`
1 parent e0fa885 commit b380093

File tree

5 files changed

+26
-22
lines changed

5 files changed

+26
-22
lines changed

Package.resolved

Lines changed: 3 additions & 3 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

Package.swift

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -6,7 +6,7 @@ import PackageDescription
66

77
let package = Package(
88
name: "BinaryParseKit",
9-
platforms: [.macOS(.v15), .iOS(.v18), .watchOS(.v11), .tvOS(.v18), .visionOS(.v2)],
9+
platforms: [.macOS(.v13), .iOS(.v16), .watchOS(.v9), .tvOS(.v16), .visionOS(.v1)],
1010
products: [
1111
// Products define the executables and libraries a package produces, making them visible to other packages.
1212
.library(
@@ -20,7 +20,7 @@ let package = Package(
2020
],
2121
dependencies: [
2222
.package(url: "https://github.com/swiftlang/swift-syntax.git", .upToNextMajor(from: "602.0.0")),
23-
.package(url: "https://github.com/apple/swift-binary-parsing", branch: "main"),
23+
.package(url: "https://github.com/FlickerSoul/swift-binary-parsing", branch: "main"),
2424
.package(
2525
url: "https://github.com/apple/swift-collections.git",
2626
.upToNextMinor(from: "1.1.0"),

README.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,7 @@
22

33
[![](https://img.shields.io/endpoint?url=https%3A%2F%2Fswiftpackageindex.com%2Fapi%2Fpackages%2FFlickerSoul%2FBinaryParseKit%2Fbadge%3Ftype%3Dswift-versions)](https://swiftpackageindex.com/FlickerSoul/BinaryParseKit) [![](https://img.shields.io/endpoint?url=https%3A%2F%2Fswiftpackageindex.com%2Fapi%2Fpackages%2FFlickerSoul%2FBinaryParseKit%2Fbadge%3Ftype%3Dplatforms)](https://swiftpackageindex.com/FlickerSoul/BinaryParseKit)
44

5-
A declarative Swift package for parsing binary data using macros, built on top of Apple's [`swift-binary-parsing`](https://github.com/apple/swift-binary-parsing) framework.
5+
A declarative Swift package for parsing binary data using macros, built on top of Apple's [`swift-binary-parsing`](https://github.com/apple/swift-binary-parsing) framework (a [fork](https://github.com/FlickerSoul/swift-binary-parsing), actually, that lowers the platform version so parsing can be brought to lower platform OS).
66

77
> [!IMPORTANT]
88
> Warning: This package is currently under active development and its APIs are subjected to drastic changes.

Sources/BinaryParseKit/Printer/PrintableExtensions.swift

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -29,13 +29,15 @@ extension UInt16: Printable {}
2929
extension UInt32: Printable {}
3030
extension UInt: Printable {}
3131
extension UInt64: Printable {}
32+
@available(macOS 15.0, iOS 18.0, watchOS 11.0, tvOS 18.0, visionOS 2.0, *)
3233
extension UInt128: Printable {}
3334

3435
extension Int8: Printable {}
3536
extension Int16: Printable {}
3637
extension Int32: Printable {}
3738
extension Int: Printable {}
3839
extension Int64: Printable {}
40+
@available(macOS 15.0, iOS 18.0, watchOS 11.0, tvOS 18.0, visionOS 2.0, *)
3941
extension Int128: Printable {}
4042

4143
// MARK: - Floating Point

Tests/BinaryParseKitTests/TestPrinterIntel.swift

Lines changed: 18 additions & 16 deletions
Original file line numberDiff line numberDiff line change
@@ -72,22 +72,24 @@ struct PrinterIntelTest {
7272
)
7373

7474
// Int128/UInt128
75-
#expect(
76-
Int128(bitPattern: 0xDEAD_BEEF_CAFE_BABE_1234_5678_9ABC_DEF0).toBytes(useBigEndian: true)
77-
== [0xDE, 0xAD, 0xBE, 0xEF, 0xCA, 0xFE, 0xBA, 0xBE, 0x12, 0x34, 0x56, 0x78, 0x9A, 0xBC, 0xDE, 0xF0],
78-
)
79-
#expect(
80-
Int128(bitPattern: 0xDEAD_BEEF_CAFE_BABE_1234_5678_9ABC_DEF0).toBytes(useBigEndian: false)
81-
== [0xF0, 0xDE, 0xBC, 0x9A, 0x78, 0x56, 0x34, 0x12, 0xBE, 0xBA, 0xFE, 0xCA, 0xEF, 0xBE, 0xAD, 0xDE],
82-
)
83-
#expect(
84-
UInt128(0xABAD_CAFE_AAC0_FFEE_1122_3344_5566_7788).toBytes(useBigEndian: true)
85-
== [0xAB, 0xAD, 0xCA, 0xFE, 0xAA, 0xC0, 0xFF, 0xEE, 0x11, 0x22, 0x33, 0x44, 0x55, 0x66, 0x77, 0x88],
86-
)
87-
#expect(
88-
UInt128(0xABAD_CAFE_AAC0_FFEE_1122_3344_5566_7788).toBytes(useBigEndian: false)
89-
== [0x88, 0x77, 0x66, 0x55, 0x44, 0x33, 0x22, 0x11, 0xEE, 0xFF, 0xC0, 0xAA, 0xFE, 0xCA, 0xAD, 0xAB],
90-
)
75+
if #available(macOS 15.0, iOS 18.0, watchOS 11.0, tvOS 18.0, visionOS 2.0, *) {
76+
#expect(
77+
Int128(bitPattern: 0xDEAD_BEEF_CAFE_BABE_1234_5678_9ABC_DEF0).toBytes(useBigEndian: true)
78+
== [0xDE, 0xAD, 0xBE, 0xEF, 0xCA, 0xFE, 0xBA, 0xBE, 0x12, 0x34, 0x56, 0x78, 0x9A, 0xBC, 0xDE, 0xF0],
79+
)
80+
#expect(
81+
Int128(bitPattern: 0xDEAD_BEEF_CAFE_BABE_1234_5678_9ABC_DEF0).toBytes(useBigEndian: false)
82+
== [0xF0, 0xDE, 0xBC, 0x9A, 0x78, 0x56, 0x34, 0x12, 0xBE, 0xBA, 0xFE, 0xCA, 0xEF, 0xBE, 0xAD, 0xDE],
83+
)
84+
#expect(
85+
UInt128(0xABAD_CAFE_AAC0_FFEE_1122_3344_5566_7788).toBytes(useBigEndian: true)
86+
== [0xAB, 0xAD, 0xCA, 0xFE, 0xAA, 0xC0, 0xFF, 0xEE, 0x11, 0x22, 0x33, 0x44, 0x55, 0x66, 0x77, 0x88],
87+
)
88+
#expect(
89+
UInt128(0xABAD_CAFE_AAC0_FFEE_1122_3344_5566_7788).toBytes(useBigEndian: false)
90+
== [0x88, 0x77, 0x66, 0x55, 0x44, 0x33, 0x22, 0x11, 0xEE, 0xFF, 0xC0, 0xAA, 0xFE, 0xCA, 0xAD, 0xAB],
91+
)
92+
}
9193
}
9294

9395
// MARK: - ParseEnum PrinterIntel Tests

0 commit comments

Comments
 (0)