Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
34 changes: 23 additions & 11 deletions Package.swift
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
// swift-tools-version:5.10
// swift-tools-version:6.0
//===----------------------------------------------------------------------===//
//
// This source file is part of the SwiftNIO open source project
Expand All @@ -14,6 +14,20 @@
//===----------------------------------------------------------------------===//
import PackageDescription

let strictConcurrencyDevelopment = false

let strictConcurrencySettings: [SwiftSetting] = {
var initialSettings: [SwiftSetting] = []

if strictConcurrencyDevelopment {
// -warnings-as-errors here is a workaround so that IDE-based development can
// get tripped up on -require-explicit-sendable.
initialSettings.append(.unsafeFlags(["-require-explicit-sendable", "-warnings-as-errors"]))
}

return initialSettings
}()

let package = Package(
name: "swift-http-structured-headers",
products: [
Expand All @@ -29,29 +43,27 @@ let package = Package(
targets: [
.target(
name: "RawStructuredFieldValues",
dependencies: []
dependencies: [],
swiftSettings: strictConcurrencySettings
),
.target(
name: "StructuredFieldValues",
dependencies: ["RawStructuredFieldValues"]
dependencies: ["RawStructuredFieldValues"],
swiftSettings: strictConcurrencySettings
),
.executableTarget(
name: "sh-parser",
dependencies: ["RawStructuredFieldValues"]
dependencies: ["RawStructuredFieldValues"],
swiftSettings: strictConcurrencySettings
),
.testTarget(
name: "StructuredFieldValuesTests",
dependencies: ["RawStructuredFieldValues", "StructuredFieldValues"]
dependencies: ["RawStructuredFieldValues", "StructuredFieldValues"],
swiftSettings: strictConcurrencySettings
),
]
)

for target in package.targets {
var settings = target.swiftSettings ?? []
settings.append(.enableExperimentalFeature("StrictConcurrency=complete"))
target.swiftSettings = settings
}

// --- STANDARD CROSS-REPO SETTINGS DO NOT EDIT --- //
for target in package.targets {
switch target.type {
Expand Down
2 changes: 1 addition & 1 deletion Sources/RawStructuredFieldValues/FieldParser.swift
Original file line number Diff line number Diff line change
Expand Up @@ -560,7 +560,7 @@ extension StructuredFieldValueParser {
let unicodeSequence = byteArray.withUnsafeBytes {
$0.withMemoryRebound(to: CChar.self) {
// This force-unwrap is safe, as the buffer must successfully bind to CChar.
String(validatingUTF8: $0.baseAddress!)
String(validatingCString: $0.baseAddress!)
}
}

Expand Down
Loading