|
1 | 1 | #= |
2 | 2 | Utility functions for Str strings |
3 | 3 |
|
4 | | -Copyright 2018-2021 Gandalf Software, Inc., Scott P. Jones, |
| 4 | +Copyright 2018-2023 Gandalf Software, Inc., Scott P. Jones, |
5 | 5 | and other contributors to the Julia language |
6 | 6 | Licensed under MIT License, see LICENSE.md |
7 | 7 | Based initially on julia/test/strings/util.jl |
@@ -131,16 +131,21 @@ split(str::_SplitTypes, splitter::SetOfChars; |
131 | 131 | limit::Integer=0, keepempty::Bool=true, keep::Union{Nothing,Bool}=nothing) = |
132 | 132 | __split(str, in(splitter), limit, checkkeep(keepempty, keep, :split), splitarr(str)) |
133 | 133 |
|
| 134 | +@static if isdefined(Base, :eachrsplit) |
| 135 | +const _RSplitTypes = MaybeSub{<:Str{<:Union{_LatinCSE,_UCS2CSE,_UTF32CSE}}} |
| 136 | +else |
| 137 | +const _RSplitTypes = MaybeSub{<:Str} |
134 | 138 | Base._rsplit(str::MaybeSub{<:Str}, splitter, limit, keepempty, vec) = |
135 | 139 | __rsplit(str, splitter, limit, keepempty, vec) |
| 140 | +end |
136 | 141 |
|
137 | | -rsplit(str::MaybeSub{<:Str}, splitter; |
| 142 | +rsplit(str::_RSplitTypes, splitter; |
138 | 143 | limit::Integer=0, keepempty::Bool=true, keep::Union{Nothing,Bool}=nothing) = |
139 | 144 | __rsplit(str, splitter, limit, checkkeep(keepempty, keep, :rsplit), splitarr(str)) |
140 | | -rsplit(str::MaybeSub{<:Str}, splitter::AbstractChar; |
| 145 | +rsplit(str::_RSplitTypes, splitter::AbstractChar; |
141 | 146 | limit::Integer=0, keepempty::Bool=true, keep::Union{Nothing,Bool}=nothing) = |
142 | 147 | __rsplit(str, isequal(splitter), limit, checkkeep(keepempty, keep, :rsplit), splitarr(str)) |
143 | | -rsplit(str::MaybeSub{<:Str}, splitter::SetOfChars; |
| 148 | +rsplit(str::_RSplitTypes, splitter::SetOfChars; |
144 | 149 | limit::Integer=0, keepempty::Bool=true, keep::Union{Nothing,Bool}=nothing) = |
145 | 150 | __rsplit(str, in(splitter), limit, checkkeep(keepempty, keep, :rsplit), splitarr(str)) |
146 | 151 |
|
|
0 commit comments