File tree Expand file tree Collapse file tree 1 file changed +6
-9
lines changed
Sources/_StringProcessing/Algorithms/Consumers Expand file tree Collapse file tree 1 file changed +6
-9
lines changed Original file line number Diff line number Diff line change 9
9
//
10
10
//===----------------------------------------------------------------------===//
11
11
12
- struct FixedPatternConsumer < Consumed: Collection , Pattern: Collection >
12
+ struct FixedPatternConsumer < Consumed: Collection , Pattern: Sequence >
13
13
where Consumed. Element: Equatable , Pattern. Element == Consumed . Element
14
14
{
15
15
let pattern : Pattern
@@ -21,20 +21,17 @@ extension FixedPatternConsumer: CollectionConsumer {
21
21
in range: Range < Consumed . Index >
22
22
) -> Consumed . Index ? {
23
23
var index = range. lowerBound
24
- var patternIndex = pattern. startIndex
24
+ var patternIterator = pattern. makeIterator ( )
25
25
26
- while true {
27
- if patternIndex == pattern. endIndex {
28
- return index
29
- }
30
-
31
- if index == range. upperBound || consumed [ index] != pattern [ patternIndex] {
26
+ while let element = patternIterator. next ( ) {
27
+ if index == range. upperBound || consumed [ index] != element {
32
28
return nil
33
29
}
34
30
35
31
consumed. formIndex ( after: & index)
36
- pattern. formIndex ( after: & patternIndex)
37
32
}
33
+
34
+ return index
38
35
}
39
36
}
40
37
You can’t perform that action at this time.
0 commit comments