12
12
// MARK: `CollectionSearcher` algorithms
13
13
14
14
extension RangeReplaceableCollection {
15
- func _replacing< Searcher : CollectionSearcher , Replacement: Collection > (
16
- _ searcher : Searcher ,
15
+ func _replacing< Ranges : Collection , Replacement: Collection > (
16
+ _ ranges : Ranges ,
17
17
with replacement: Replacement ,
18
18
subrange: Range < Index > ,
19
19
maxReplacements: Int = . max
20
- ) -> Self where Searcher . Searched == SubSequence ,
20
+ ) -> Self where Ranges . Element == Range < Index > ,
21
21
Replacement. Element == Element
22
22
{
23
23
precondition ( maxReplacements >= 0 )
@@ -26,7 +26,7 @@ extension RangeReplaceableCollection {
26
26
var result = Self ( )
27
27
result. append ( contentsOf: self [ ..< index] )
28
28
29
- for range in self [ subrange ] . _ranges ( of : searcher ) . prefix ( maxReplacements) {
29
+ for range in ranges . prefix ( maxReplacements) {
30
30
result. append ( contentsOf: self [ index..< range. lowerBound] )
31
31
result. append ( contentsOf: replacement)
32
32
index = range. upperBound
@@ -36,29 +36,29 @@ extension RangeReplaceableCollection {
36
36
return result
37
37
}
38
38
39
- func _replacing< Searcher : CollectionSearcher , Replacement: Collection > (
40
- _ searcher : Searcher ,
39
+ func _replacing< Ranges : Collection , Replacement: Collection > (
40
+ _ ranges : Ranges ,
41
41
with replacement: Replacement ,
42
42
maxReplacements: Int = . max
43
- ) -> Self where Searcher . Searched == SubSequence ,
43
+ ) -> Self where Ranges . Element == Range < Index > ,
44
44
Replacement. Element == Element
45
45
{
46
46
_replacing (
47
- searcher ,
47
+ ranges ,
48
48
with: replacement,
49
49
subrange: startIndex..< endIndex,
50
50
maxReplacements: maxReplacements)
51
51
}
52
52
53
53
mutating func _replace<
54
- Searcher : CollectionSearcher , Replacement: Collection
54
+ Ranges : Collection , Replacement: Collection
55
55
> (
56
- _ searcher : Searcher ,
56
+ _ ranges : Ranges ,
57
57
with replacement: Replacement ,
58
58
maxReplacements: Int = . max
59
- ) where Searcher . Searched == SubSequence , Replacement. Element == Element {
59
+ ) where Ranges . Element == Range < Index > , Replacement. Element == Element {
60
60
self = _replacing (
61
- searcher ,
61
+ ranges ,
62
62
with: replacement,
63
63
maxReplacements: maxReplacements)
64
64
}
@@ -85,7 +85,7 @@ extension RangeReplaceableCollection where Element: Equatable {
85
85
maxReplacements: Int = . max
86
86
) -> Self where C. Element == Element , Replacement. Element == Element {
87
87
_replacing (
88
- ZSearcher ( pattern : Array ( other) , by : == ) ,
88
+ _ranges ( of : other) ,
89
89
with: replacement,
90
90
subrange: subrange,
91
91
maxReplacements: maxReplacements)
@@ -143,7 +143,7 @@ extension RangeReplaceableCollection
143
143
maxReplacements: Int = . max
144
144
) -> Self where C. Element == Element , Replacement. Element == Element {
145
145
_replacing (
146
- PatternOrEmpty ( searcher : TwoWaySearcher ( pattern : Array ( other) ) ) ,
146
+ _ranges ( of : other) ,
147
147
with: replacement,
148
148
subrange: subrange,
149
149
maxReplacements: maxReplacements)
@@ -195,7 +195,7 @@ extension RangeReplaceableCollection where SubSequence == Substring {
195
195
maxReplacements: Int = . max
196
196
) -> Self where Replacement. Element == Element {
197
197
_replacing (
198
- RegexConsumer ( regex) ,
198
+ _ranges ( of : regex) ,
199
199
with: replacement,
200
200
subrange: subrange,
201
201
maxReplacements: maxReplacements)
0 commit comments