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 99//
1010//===----------------------------------------------------------------------===//
1111
12- struct FixedPatternConsumer < Consumed: Collection , Pattern: Collection >
12+ struct FixedPatternConsumer < Consumed: Collection , Pattern: Sequence >
1313 where Consumed. Element: Equatable , Pattern. Element == Consumed . Element
1414{
1515 let pattern : Pattern
@@ -21,20 +21,17 @@ extension FixedPatternConsumer: CollectionConsumer {
2121 in range: Range < Consumed . Index >
2222 ) -> Consumed . Index ? {
2323 var index = range. lowerBound
24- var patternIndex = pattern. startIndex
24+ var patternIterator = pattern. makeIterator ( )
2525
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 {
3228 return nil
3329 }
3430
3531 consumed. formIndex ( after: & index)
36- pattern. formIndex ( after: & patternIndex)
3732 }
33+
34+ return index
3835 }
3936}
4037
You can’t perform that action at this time.
0 commit comments