Skip to content

Commit 8e8bce2

Browse files
committed
Removes TecoRegionGenerator's dependency on OrderedCollections
1 parent 6c7f019 commit 8e8bce2

File tree

5 files changed

+28
-47
lines changed

5 files changed

+28
-47
lines changed

Package.swift

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -59,7 +59,6 @@ let package = Package(
5959
name: "TecoRegionGenerator",
6060
dependencies: [
6161
.byName(name: "TecoCodeGeneratorCommons"),
62-
.product(name: "OrderedCollections", package: "swift-collections"),
6362
]),
6463
.executableTarget(
6564
name: "TecoServiceGenerator",

Sources/TecoRegionDataGenerator/builder.swift

Lines changed: 3 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -2,14 +2,11 @@ import SwiftSyntax
22
import SwiftSyntaxBuilder
33
@_implementationOnly import OrderedCollections
44

5-
func buildRegionExpr(id: String, names: [String], trailingComma: Bool = false) -> ArrayElementSyntax {
5+
func buildRegionExpr(id: String, names: OrderedSet<String>, trailingComma: Bool = false) -> ArrayElementSyntax {
66
precondition(names.isEmpty == false)
77
let valueExpr = FunctionCallExprSyntax(callee: ExprSyntax("Region")) {
88
TupleExprElementSyntax(label: "id", expression: ExprSyntax("\(literal: id)"))
9-
TupleExprElementSyntax(label: "localizedNames", expression: ExprSyntax("\(literal: names[0])"))
10-
for name in names.dropFirst() {
11-
TupleExprElementSyntax(expression: ExprSyntax("\(literal: name)"))
12-
}
9+
TupleExprElementSyntax(label: "localizedNames", expression: ExprSyntax("\(literal: Array(names))"))
1310
}
1411
return ArrayElementSyntax(expression: valueExpr, trailingComma: trailingComma ? .commaToken() : nil)
1512
}
@@ -21,7 +18,7 @@ func buildRegionListExpr(from maps: OrderedDictionary<String, String>...) -> Arr
2118
}
2219
return ArrayExprSyntax(elements: ArrayElementListSyntax {
2320
for id in baseKeys {
24-
buildRegionExpr(id: id, names: maps.map { $0[id]! }, trailingComma: true)
21+
buildRegionExpr(id: id, names: .init(maps.map { $0[id]! }), trailingComma: true)
2522
.withTrailingTrivia(.newline)
2623
}
2724
}.withLeadingTrivia(.newline))

Sources/TecoRegionDataGenerator/generator.swift

Lines changed: 2 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -21,28 +21,18 @@ struct TecoRegionDataGenerator: AsyncParsableCommand {
2121
let intlMap = getRegionMap(from: try await client.with(language: .en_US).describeRegions(for: product))
2222

2323
let sourceFile = SourceFileSyntax {
24-
ImportDeclSyntax("""
24+
StructDeclSyntax("""
2525
// THIS FILE IS AUTOMATICALLY GENERATED by TecoRegionDataGenerator.
2626
// DO NOT EDIT.
27-
28-
@_implementationOnly import OrderedCollections
29-
""")
3027
31-
StructDeclSyntax("""
3228
struct Region: Hashable {
3329
let id: String
34-
let localizedNames: OrderedSet<String>
35-
init(id: String, localizedNames: String...) {
36-
self.id = id
37-
self.localizedNames = OrderedSet(localizedNames)
38-
}
30+
let localizedNames: [String]
3931
}
4032
""")
4133

4234
VariableDeclSyntax("let regions = \(buildRegionListExpr(from: intlMap, map))")
43-
4435
}
45-
4636
try sourceFile.save(to: self.output)
4737
}
4838
}
Lines changed: 20 additions & 27 deletions
Original file line numberDiff line numberDiff line change
@@ -1,37 +1,30 @@
11
// THIS FILE IS AUTOMATICALLY GENERATED by TecoRegionDataGenerator.
22
// DO NOT EDIT.
33

4-
@_implementationOnly import OrderedCollections
5-
64
struct Region: Hashable {
75
let id: String
86

9-
let localizedNames: OrderedSet<String>
10-
11-
init(id: String, localizedNames: String...) {
12-
self.id = id
13-
self.localizedNames = OrderedSet(localizedNames)
14-
}
7+
let localizedNames: [String]
158
}
169

1710
let regions = [
18-
Region(id: "ap-guangzhou", localizedNames: "South China(Guangzhou)", "华南地区(广州)"),
19-
Region(id: "ap-shanghai", localizedNames: "East China(Shanghai)", "华东地区(上海)"),
20-
Region(id: "ap-nanjing", localizedNames: "East China(Nanjing)", "华东地区(南京)"),
21-
Region(id: "ap-hongkong", localizedNames: "Hong Kong, Macau and Taiwan (China)(Hong Kong, China)", "港澳台地区(中国香港)"),
22-
Region(id: "na-toronto", localizedNames: "North America(Toronto)", "北美地区(多伦多)"),
23-
Region(id: "ap-beijing", localizedNames: "North China region(Beijing)", "华北地区(北京)"),
24-
Region(id: "ap-singapore", localizedNames: "Southeast Asia(Singapore)", "亚太东南(新加坡)"),
25-
Region(id: "ap-bangkok", localizedNames: "Southeast Asia(Bangkok)", "亚太东南(曼谷)"),
26-
Region(id: "ap-jakarta", localizedNames: "Southeast Asia(Jakarta)", "亚太东南(雅加达)"),
27-
Region(id: "na-siliconvalley", localizedNames: "US West(Silicon Valley)", "美国西部(硅谷)"),
28-
Region(id: "ap-chengdu", localizedNames: "Southwest China(Chengdu)", "西南地区(成都)"),
29-
Region(id: "ap-chongqing", localizedNames: "Southwest China(Chongqing)", "西南地区(重庆)"),
30-
Region(id: "eu-frankfurt", localizedNames: "Europe(Frankfurt)", "欧洲地区(法兰克福)"),
31-
Region(id: "eu-moscow", localizedNames: "Europe(Northeastern Europe)", "欧洲地区(莫斯科)"),
32-
Region(id: "ap-seoul", localizedNames: "Northeast Asia(Seoul)", "亚太东北(首尔)"),
33-
Region(id: "ap-tokyo", localizedNames: "Northeast Asia(Tokyo)", "亚太东北(东京)"),
34-
Region(id: "ap-mumbai", localizedNames: "South Asia(Mumbai)", "亚太南部(孟买)"),
35-
Region(id: "na-ashburn", localizedNames: "US East(Virginia)", "美国东部(弗吉尼亚)"),
36-
Region(id: "sa-saopaulo", localizedNames: "South America(São Paulo)", "南美地区(圣保罗)"),
11+
Region(id: "ap-guangzhou", localizedNames: ["South China(Guangzhou)", "华南地区(广州)"]),
12+
Region(id: "ap-shanghai", localizedNames: ["East China(Shanghai)", "华东地区(上海)"]),
13+
Region(id: "ap-nanjing", localizedNames: ["East China(Nanjing)", "华东地区(南京)"]),
14+
Region(id: "ap-hongkong", localizedNames: ["Hong Kong, Macau and Taiwan (China)(Hong Kong, China)", "港澳台地区(中国香港)"]),
15+
Region(id: "na-toronto", localizedNames: ["North America(Toronto)", "北美地区(多伦多)"]),
16+
Region(id: "ap-beijing", localizedNames: ["North China region(Beijing)", "华北地区(北京)"]),
17+
Region(id: "ap-singapore", localizedNames: ["Southeast Asia(Singapore)", "亚太东南(新加坡)"]),
18+
Region(id: "ap-bangkok", localizedNames: ["Southeast Asia(Bangkok)", "亚太东南(曼谷)"]),
19+
Region(id: "ap-jakarta", localizedNames: ["Southeast Asia(Jakarta)", "亚太东南(雅加达)"]),
20+
Region(id: "na-siliconvalley", localizedNames: ["US West(Silicon Valley)", "美国西部(硅谷)"]),
21+
Region(id: "ap-chengdu", localizedNames: ["Southwest China(Chengdu)", "西南地区(成都)"]),
22+
Region(id: "ap-chongqing", localizedNames: ["Southwest China(Chongqing)", "西南地区(重庆)"]),
23+
Region(id: "eu-frankfurt", localizedNames: ["Europe(Frankfurt)", "欧洲地区(法兰克福)"]),
24+
Region(id: "eu-moscow", localizedNames: ["Europe(Northeastern Europe)", "欧洲地区(莫斯科)"]),
25+
Region(id: "ap-seoul", localizedNames: ["Northeast Asia(Seoul)", "亚太东北(首尔)"]),
26+
Region(id: "ap-tokyo", localizedNames: ["Northeast Asia(Tokyo)", "亚太东北(东京)"]),
27+
Region(id: "ap-mumbai", localizedNames: ["South Asia(Mumbai)", "亚太南部(孟买)"]),
28+
Region(id: "na-ashburn", localizedNames: ["US East(Virginia)", "美国东部(弗吉尼亚)"]),
29+
Region(id: "sa-saopaulo", localizedNames: ["South America(São Paulo)", "南美地区(圣保罗)"]),
3730
]

Sources/TecoRegionGenerator/helpers.swift

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
extension Region: Equatable, Comparable {
1+
extension Region {
22
var description: String { self.localizedNames.joined(separator: " / ") }
33
var identifier: String { self.id.replacingOccurrences(of: "-", with: "_") }
44
var kind: String? {
@@ -10,7 +10,9 @@ extension Region: Equatable, Comparable {
1010
}
1111
return nil
1212
}
13+
}
1314

15+
extension Region: Comparable {
1416
static func == (lhs: Region, rhs: Region) -> Bool {
1517
lhs.id == rhs.id
1618
}

0 commit comments

Comments
 (0)