@@ -39,16 +39,12 @@ public struct IndexPath : ReferenceConvertible, Equatable, Hashable, MutableColl
39
39
switch elements. count {
40
40
case 0 :
41
41
self = . empty
42
- break
43
42
case 1 :
44
43
self = . single( elements [ 0 ] )
45
- break
46
44
case 2 :
47
45
self = . pair( elements [ 0 ] , elements [ 1 ] )
48
- break
49
46
default :
50
47
self = . array( elements)
51
- break
52
48
}
53
49
}
54
50
@@ -74,16 +70,12 @@ public struct IndexPath : ReferenceConvertible, Equatable, Hashable, MutableColl
74
70
switch self {
75
71
case . empty:
76
72
self = . single( other)
77
- break
78
73
case . single( let first) :
79
74
self = . pair( first, other)
80
- break
81
75
case . pair( let first, let second) :
82
76
self = . array( [ first, second, other] )
83
- break
84
77
case . array( let indexes) :
85
78
self = . array( indexes + [ other] )
86
- break
87
79
}
88
80
}
89
81
@@ -96,63 +88,47 @@ public struct IndexPath : ReferenceConvertible, Equatable, Hashable, MutableColl
96
88
break
97
89
case . single( let rhsIndex) :
98
90
self = . single( rhsIndex)
99
- break
100
91
case . pair( let rhsFirst, let rhsSecond) :
101
92
self = . pair( rhsFirst, rhsSecond)
102
- break
103
93
case . array( let rhsIndexes) :
104
94
self = . array( rhsIndexes)
105
- break
106
95
}
107
- break
108
96
case . single( let lhsIndex) :
109
97
switch other {
110
98
case . empty:
111
99
// DO NOTHING
112
100
break
113
101
case . single( let rhsIndex) :
114
102
self = . pair( lhsIndex, rhsIndex)
115
- break
116
103
case . pair( let rhsFirst, let rhsSecond) :
117
104
self = . array( [ lhsIndex, rhsFirst, rhsSecond] )
118
- break
119
105
case . array( let rhsIndexes) :
120
106
self = . array( [ lhsIndex] + rhsIndexes)
121
- break
122
107
}
123
- break
124
108
case . pair( let lhsFirst, let lhsSecond) :
125
109
switch other {
126
110
case . empty:
127
111
// DO NOTHING
128
112
break
129
113
case . single( let rhsIndex) :
130
114
self = . array( [ lhsFirst, lhsSecond, rhsIndex] )
131
- break
132
115
case . pair( let rhsFirst, let rhsSecond) :
133
116
self = . array( [ lhsFirst, lhsSecond, rhsFirst, rhsSecond] )
134
- break
135
117
case . array( let rhsIndexes) :
136
118
self = . array( [ lhsFirst, lhsSecond] + rhsIndexes)
137
- break
138
119
}
139
- break
140
120
case . array( let lhsIndexes) :
141
121
switch other {
142
122
case . empty:
143
123
// DO NOTHING
144
124
break
145
125
case . single( let rhsIndex) :
146
126
self = . array( lhsIndexes + [ rhsIndex] )
147
- break
148
127
case . pair( let rhsFirst, let rhsSecond) :
149
128
self = . array( lhsIndexes + [ rhsFirst, rhsSecond] )
150
- break
151
129
case . array( let rhsIndexes) :
152
130
self = . array( lhsIndexes + rhsIndexes)
153
- break
154
131
}
155
- break
156
132
}
157
133
}
158
134
@@ -165,41 +141,31 @@ public struct IndexPath : ReferenceConvertible, Equatable, Hashable, MutableColl
165
141
break
166
142
case 1 :
167
143
self = . single( other [ 0 ] )
168
- break
169
144
case 2 :
170
145
self = . pair( other [ 0 ] , other [ 1 ] )
171
- break
172
146
default :
173
147
self = . array( other)
174
- break
175
148
}
176
- break
177
149
case . single( let first) :
178
150
switch other. count {
179
151
case 0 :
180
152
// DO NOTHING
181
153
break
182
154
case 1 :
183
155
self = . pair( first, other [ 0 ] )
184
- break
185
156
default :
186
157
self = . array( [ first] + other)
187
- break
188
158
}
189
- break
190
159
case . pair( let first, let second) :
191
160
switch other. count {
192
161
case 0 :
193
162
// DO NOTHING
194
163
break
195
164
default :
196
165
self = . array( [ first, second] + other)
197
- break
198
166
}
199
- break
200
167
case . array( let indexes) :
201
168
self = . array( indexes + other)
202
- break
203
169
}
204
170
}
205
171
@@ -208,7 +174,6 @@ public struct IndexPath : ReferenceConvertible, Equatable, Hashable, MutableColl
208
174
switch self {
209
175
case . empty:
210
176
fatalError ( " Index \( index) out of bounds of count 0 " )
211
- break
212
177
case . single( let first) :
213
178
precondition ( index == 0 , " Index \( index) out of bounds of count 1 " )
214
179
return first
@@ -223,24 +188,20 @@ public struct IndexPath : ReferenceConvertible, Equatable, Hashable, MutableColl
223
188
switch self {
224
189
case . empty:
225
190
fatalError ( " Index \( index) out of bounds of count 0 " )
226
- break
227
191
case . single( _) :
228
192
precondition ( index == 0 , " Index \( index) out of bounds of count 1 " )
229
193
self = . single( newValue)
230
- break
231
194
case . pair( let first, let second) :
232
195
precondition ( index >= 0 && index < 2 , " Index \( index) out of bounds of count 2 " )
233
196
if index == 0 {
234
197
self = . pair( newValue, second)
235
198
} else {
236
199
self = . pair( first, newValue)
237
200
}
238
- break
239
201
case . array( let indexes_) :
240
202
var indexes = indexes_
241
203
indexes [ index] = newValue
242
204
self = . array( indexes)
243
- break
244
205
}
245
206
}
246
207
}
@@ -266,7 +227,6 @@ public struct IndexPath : ReferenceConvertible, Equatable, Hashable, MutableColl
266
227
fatalError ( " Range \( range) is out of bounds of count 1 " )
267
228
}
268
229
case . pair( let first, let second) :
269
-
270
230
switch ( range. lowerBound, range. upperBound) {
271
231
case ( 0 , 0 ) :
272
232
fallthrough
@@ -302,7 +262,6 @@ public struct IndexPath : ReferenceConvertible, Equatable, Hashable, MutableColl
302
262
case . empty:
303
263
precondition ( range. lowerBound == 0 && range. upperBound == 0 , " Range \( range) is out of bounds of count 0 " )
304
264
self = newValue
305
- break
306
265
case . single( let index) :
307
266
switch ( range. lowerBound, range. upperBound, newValue) {
308
267
case ( 0 , 0 , . empty) :
@@ -311,13 +270,10 @@ public struct IndexPath : ReferenceConvertible, Equatable, Hashable, MutableColl
311
270
break
312
271
case ( 0 , 0 , . single( let other) ) :
313
272
self = . pair( other, index)
314
- break
315
273
case ( 0 , 0 , . pair( let first, let second) ) :
316
274
self = . array( [ first, second, index] )
317
- break
318
275
case ( 0 , 0 , . array( let other) ) :
319
276
self = . array( other + [ index] )
320
- break
321
277
case ( 0 , 1 , . empty) :
322
278
fallthrough
323
279
case ( 0 , 1 , . single) :
@@ -328,13 +284,10 @@ public struct IndexPath : ReferenceConvertible, Equatable, Hashable, MutableColl
328
284
self = newValue
329
285
case ( 1 , 1 , . single( let other) ) :
330
286
self = . pair( index, other)
331
- break
332
287
case ( 1 , 1 , . pair( let first, let second) ) :
333
288
self = . array( [ index, first, second] )
334
- break
335
289
case ( 1 , 1 , . array( let other) ) :
336
290
self = . array( [ index] + other)
337
- break
338
291
default :
339
292
fatalError ( " Range \( range) is out of bounds of count 1 " )
340
293
}
@@ -346,63 +299,46 @@ public struct IndexPath : ReferenceConvertible, Equatable, Hashable, MutableColl
346
299
break
347
300
case . single( let other) :
348
301
self = . array( [ other, first, second] )
349
- break
350
302
case . pair( let otherFirst, let otherSecond) :
351
303
self = . array( [ otherFirst, otherSecond, first, second] )
352
- break
353
304
case . array( let other) :
354
305
self = . array( other + [ first, second] )
355
- break
356
306
}
357
- break
358
307
case ( 0 , 1 ) :
359
308
switch newValue {
360
309
case . empty:
361
310
self = . single( second)
362
- break
363
311
case . single( let other) :
364
312
self = . pair( other, second)
365
- break
366
313
case . pair( let otherFirst, let otherSecond) :
367
314
self = . array( [ otherFirst, otherSecond, second] )
368
- break
369
315
case . array( let other) :
370
316
self = . array( other + [ second] )
371
- break
372
317
}
373
- break
374
318
case ( 0 , 2 ) :
375
319
self = newValue
376
- break
377
320
case ( 1 , 2 ) :
378
321
switch newValue {
379
322
case . empty:
380
323
self = . single( first)
381
- break
382
324
case . single( let other) :
383
325
self = . pair( first, other)
384
- break
385
326
case . pair( let otherFirst, let otherSecond) :
386
327
self = . array( [ first, otherFirst, otherSecond] )
387
- break
388
328
case . array( let other) :
389
329
self = . array( [ first] + other)
390
330
}
391
- break
392
331
case ( 2 , 2 ) :
393
332
switch newValue {
394
333
case . empty:
395
334
break
396
335
case . single( let other) :
397
336
self = . array( [ first, second, other] )
398
- break
399
337
case . pair( let otherFirst, let otherSecond) :
400
338
self = . array( [ first, second, otherFirst, otherSecond] )
401
- break
402
339
case . array( let other) :
403
340
self = . array( [ first, second] + other)
404
341
}
405
- break
406
342
default :
407
343
fatalError ( " Range \( range) is out of bounds of count 2 " )
408
344
}
@@ -414,17 +350,13 @@ public struct IndexPath : ReferenceConvertible, Equatable, Hashable, MutableColl
414
350
break
415
351
case . single( let index) :
416
352
newIndexes. insert ( index, at: range. lowerBound)
417
- break
418
353
case . pair( let first, let second) :
419
354
newIndexes. insert ( first, at: range. lowerBound)
420
355
newIndexes. insert ( second, at: range. lowerBound + 1 )
421
- break
422
356
case . array( let other) :
423
357
newIndexes. insert ( contentsOf: other, at: range. lowerBound)
424
- break
425
358
}
426
359
self = Storage ( newIndexes)
427
- break
428
360
}
429
361
}
430
362
}
0 commit comments