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"

Property definitions

core $ Bytes :: split_with
	# 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