Create a Splitter that treats consecutive values matching the predicate p
as
substreams with no particular context value.
Create a Splitter that treats consecutive values matching the predicate p
as
substreams with no particular context value.
For example, given a matcher like i => i % 2 == 0
, a stream like
1 3 2 2 4 5 6 7 8 10 4 3 1
could be treated as having three substreams:
2 2 4
6
8 10 4
Create a Splitter that treats consecutive matched values as substreams.
Create a Splitter that treats consecutive matched values as substreams.
For example, given a matcher like { case c if c.isLetter => c }
, a stream like
1 2 3 A B C 4 5 6 D 7 8 E F G H 9
could be treated as having three substreams, where each substream's "context value" is the first letter in that group (because context is always defined by the beginning of the substream).
A B C
with context 'A'
(between the 3 and 4)D
with context 'D'
(between the 6 and 7)E F G H
with context 'E'
(between the 8 and 9)A function defining which inputs count as a "match"
Create a splitter that starts a new substream every time the predicate function p
returns true for an input.
Create a splitter that starts a new substream every time the predicate function p
returns true for an input.
Any inputs passed through before the initial match will be discarded, but every event thereafter will be part
of a substream. Context is ignored for substreams from this method - the context type is Any
.
For example, in a stream like 4 3 2 1 2 3 1 2 1 2 3 4
, if our predicate was { _ == 1 }
,
then we'd have a new substream starting from each 1
input.
The input type
The predicate function responsible for determining if a new context should start for an input.
A splitter that starts a new substream for every input where p(input) == true
Create a splitter that starts a new substream every time the matcher
matches.
Create a splitter that starts a new substream every time the matcher
matches.
Any events passed through before the initial match will be discarded, but every event
thereafter will be part of a substream. The context for a substream is based on the
value returned by the matcher
for the event that caused that match.
For example, in a stream like 4 3 2 1 2 3 1 2 1 2 3 4
, if our matcher was { case 1 => "yay" }
,
then we'd have a new substream with context "yay" every time a 1
came through:
The input type
The extracted context type
A PartialFunction that can extract a context value from inputs
A splitter that starts a new substream for every input where matcher.isDefinedAt(input)
,
with a context equal to matcher(input)
.