core :: Bytes :: split_with
b
var a = "String is string".to_bytes.split_with(u's')
assert a.length == 3
assert a[0].hexdigest == "537472696E672069"
assert a[1].hexdigest == "20"
assert a[2].hexdigest == "7472696E67"
# Splits the content on self when encountering `b`
#
# var a = "String is string".to_bytes.split_with(u's')
# assert a.length == 3
# assert a[0].hexdigest == "537472696E672069"
# assert a[1].hexdigest == "20"
# assert a[2].hexdigest == "7472696E67"
fun split_with(b: BytePattern): Array[Bytes] do
var fst = b.search_all_in(self)
if fst.is_empty then return [clone]
var retarr = new Array[Bytes]
var prev = 0
for i in fst do
retarr.add(slice(prev, i - prev))
prev = i + b.pattern_length
end
retarr.add slice_from(prev)
return retarr
end
lib/core/bytes.nit:656,2--674,4