Skip to content

Commit 6d98aa4

Browse files
committed
Clarify SwiftNameOptions
1 parent 94173c7 commit 6d98aa4

File tree

14 files changed

+41
-38
lines changed

14 files changed

+41
-38
lines changed

Sources/_OpenAPIGeneratorCore/Translator/CommonTranslations/SwiftSafeNames.swift

Lines changed: 9 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -13,11 +13,14 @@
1313
//===----------------------------------------------------------------------===//
1414
import Foundation
1515

16-
struct SwiftNameOptions: OptionSet {
17-
let rawValue: Int32
18-
static let none = SwiftNameOptions([])
19-
static let capitalize = SwiftNameOptions(rawValue: 1 << 0)
20-
static let all: SwiftNameOptions = [.capitalize]
16+
struct SwiftNameOptions {
17+
enum NameKind {
18+
case capitalized
19+
case noncapitalized
20+
}
21+
var kind: NameKind
22+
static let capitalized = SwiftNameOptions(kind: .capitalized)
23+
static let noncapitalized = SwiftNameOptions(kind: .noncapitalized)
2124
}
2225

2326
extension String {
@@ -80,7 +83,7 @@ extension String {
8083
/// If the string contains any illegal characters, falls back to the behavior
8184
/// matching `safeForSwiftCode_defensive`.
8285
func safeForSwiftCode_idiomatic(options: SwiftNameOptions) -> String {
83-
let capitalize = options.contains(.capitalize)
86+
let capitalize = options.kind == .capitalized
8487
if isEmpty { return capitalize ? "_Empty_" : "_empty_" }
8588
// Detect cases like HELLO_WORLD, sometimes used for constants.
8689
let isAllUppercase = allSatisfy {

Sources/_OpenAPIGeneratorCore/Translator/CommonTranslations/translateAllAnyOneOf.swift

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -209,7 +209,7 @@ extension TypesFileTranslator {
209209
let decoder: Declaration
210210
if let discriminator {
211211
let originalName = discriminator.propertyName
212-
let swiftName = context.asSwiftSafeName(originalName, .none)
212+
let swiftName = context.asSwiftSafeName(originalName, .noncapitalized)
213213
codingKeysDecls = [
214214
.enum(
215215
accessModifier: config.access,

Sources/_OpenAPIGeneratorCore/Translator/CommonTranslations/translateRawEnum.swift

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -101,12 +101,12 @@ extension FileTranslator {
101101
// This is unlikely to be fixed, so handling that case here.
102102
// https://github.com/apple/swift-openapi-generator/issues/118
103103
if isNullable && anyValue is Void {
104-
try addIfUnique(id: .string(""), caseName: context.asSwiftSafeName("", .none))
104+
try addIfUnique(id: .string(""), caseName: context.asSwiftSafeName("", .noncapitalized))
105105
} else {
106106
guard let rawValue = anyValue as? String else {
107107
throw GenericError(message: "Disallowed value for a string enum '\(typeName)': \(anyValue)")
108108
}
109-
let caseName = context.asSwiftSafeName(rawValue, .none)
109+
let caseName = context.asSwiftSafeName(rawValue, .noncapitalized)
110110
try addIfUnique(id: .string(rawValue), caseName: caseName)
111111
}
112112
case .integer:

Sources/_OpenAPIGeneratorCore/Translator/CommonTypes/DiscriminatorExtensions.swift

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -80,7 +80,7 @@ extension FileTranslator {
8080
/// - Parameter type: The `OneOfMappedType` for which to determine the case name.
8181
/// - Returns: A string representing the safe Swift name for the specified `OneOfMappedType`.
8282
func safeSwiftNameForOneOfMappedCase(_ type: OneOfMappedType) -> String {
83-
context.asSwiftSafeName(type.rawNames[0], .none)
83+
context.asSwiftSafeName(type.rawNames[0], .noncapitalized)
8484
}
8585
}
8686

Sources/_OpenAPIGeneratorCore/Translator/CommonTypes/StructBlueprint.swift

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -153,7 +153,7 @@ struct PropertyBlueprint {
153153
extension PropertyBlueprint {
154154

155155
/// A name that is verified to be a valid Swift identifier.
156-
var swiftSafeName: String { context.asSwiftSafeName(originalName, .none) }
156+
var swiftSafeName: String { context.asSwiftSafeName(originalName, .noncapitalized) }
157157

158158
/// The JSON path to the property.
159159
///

Sources/_OpenAPIGeneratorCore/Translator/Multipart/MultipartContentInspector.swift

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -120,7 +120,7 @@ extension FileTranslator {
120120
}
121121
var parts: [MultipartSchemaTypedContent] = try topLevelObject.properties.compactMap {
122122
(key, value) -> MultipartSchemaTypedContent? in
123-
let swiftSafeName = context.asSwiftSafeName(key, .capitalize)
123+
let swiftSafeName = context.asSwiftSafeName(key, .capitalized)
124124
let typeName = typeName.appending(
125125
swiftComponent: swiftSafeName + Constants.Global.inlineTypeSuffix,
126126
jsonComponent: key

Sources/_OpenAPIGeneratorCore/Translator/Multipart/translateMultipart.swift

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -137,7 +137,7 @@ extension TypesFileTranslator {
137137
switch part {
138138
case .documentedTyped(let documentedPart):
139139
let caseDecl: Declaration = .enumCase(
140-
name: context.asSwiftSafeName(documentedPart.originalName, .none),
140+
name: context.asSwiftSafeName(documentedPart.originalName, .noncapitalized),
141141
kind: .nameWithAssociatedValues([.init(type: .init(part.wrapperTypeUsage))])
142142
)
143143
let decl = try translateMultipartPartContent(
@@ -404,7 +404,7 @@ extension FileTranslator {
404404
switch part {
405405
case .documentedTyped(let part):
406406
let originalName = part.originalName
407-
let identifier = context.asSwiftSafeName(originalName, .none)
407+
let identifier = context.asSwiftSafeName(originalName, .noncapitalized)
408408
let contentType = part.partInfo.contentType
409409
let partTypeName = part.typeName
410410
let schema = part.schema
@@ -613,7 +613,7 @@ extension FileTranslator {
613613
switch part {
614614
case .documentedTyped(let part):
615615
let originalName = part.originalName
616-
let identifier = context.asSwiftSafeName(originalName, .none)
616+
let identifier = context.asSwiftSafeName(originalName, .noncapitalized)
617617
let contentType = part.partInfo.contentType
618618
let headersTypeName = part.typeName.appending(
619619
swiftComponent: Constants.Operation.Output.Payload.Headers.typeName,

Sources/_OpenAPIGeneratorCore/Translator/Operations/OperationDescription.swift

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -83,14 +83,14 @@ extension OperationDescription {
8383
/// Uses the `operationID` value in the OpenAPI operation, if one was
8484
/// specified. Otherwise, computes a unique name from the operation's
8585
/// path and HTTP method.
86-
var methodName: String { context.asSwiftSafeName(operationID, .none) }
86+
var methodName: String { context.asSwiftSafeName(operationID, .noncapitalized) }
8787

8888
/// Returns a Swift-safe type name for the operation.
8989
///
9090
/// Uses the `operationID` value in the OpenAPI operation, if one was
9191
/// specified. Otherwise, computes a unique name from the operation's
9292
/// path and HTTP method.
93-
var operationTypeName: String { context.asSwiftSafeName(operationID, .capitalize) }
93+
var operationTypeName: String { context.asSwiftSafeName(operationID, .capitalized) }
9494

9595
/// Returns the identifier for the operation.
9696
///
@@ -299,7 +299,7 @@ extension OperationDescription {
299299
}
300300
let newPath = OpenAPI.Path(newComponents, trailingSlash: path.trailingSlash)
301301
let names: [Expression] = orderedPathParameters.map { param in
302-
.identifierPattern("input").dot("path").dot(context.asSwiftSafeName(param, .none))
302+
.identifierPattern("input").dot("path").dot(context.asSwiftSafeName(param, .noncapitalized))
303303
}
304304
let arrayExpr: Expression = .literal(.array(names))
305305
return (newPath.rawValue, arrayExpr)

Sources/_OpenAPIGeneratorCore/Translator/Parameters/TypedParameter.swift

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -48,7 +48,7 @@ extension TypedParameter {
4848
var name: String { parameter.name }
4949

5050
/// The name of the parameter sanitized to be a valid Swift identifier.
51-
var variableName: String { context.asSwiftSafeName(name, .none) }
51+
var variableName: String { context.asSwiftSafeName(name, .noncapitalized) }
5252

5353
/// A Boolean value that indicates whether the parameter must be specified
5454
/// when performing the OpenAPI operation.

Sources/_OpenAPIGeneratorCore/Translator/Responses/TypedResponseHeader.swift

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -39,7 +39,7 @@ struct TypedResponseHeader {
3939
extension TypedResponseHeader {
4040

4141
/// The name of the header sanitized to be a valid Swift identifier.
42-
var variableName: String { context.asSwiftSafeName(name, .none) }
42+
var variableName: String { context.asSwiftSafeName(name, .noncapitalized) }
4343

4444
/// A Boolean value that indicates whether the response header can
4545
/// be omitted in the HTTP response.

0 commit comments

Comments
 (0)