pub fn replacementSize(comptime T: type, input: []const T, needle: []const T, replacement: []const T) usize T: typeinput: []const Tneedle: []const Treplacement: []const T4198
4199
4200
4201
4202
4203
4204
4205
4206
4207
4208
4209
4210
4211
4212
4213
4214pub fn replacementSize(comptime T: type, input: []const T, needle: []const T, replacement: []const T) usize {
// Empty needle will loop forever.
assert(needle.len > 0);
var i: usize = 0;
var size: usize = input.len;
while (i < input.len) {
if (mem.startsWith(T, input[i..], needle)) {
size = size - needle.len + replacement.len;
i += needle.len;
} else {
i += 1;
}
}
return size;
}
Calculate the size needed in an output buffer to perform a replacement. The needle must not be empty.