Stream Flow
Flow is similar to stream, but without sequence specific methods.
Elements of Flow can be processed either in parallel or sequentially.
Flow is usually created from stream with ".parallel" method.
val flow: Stream.Flow[Int] = (1 <> 10).stream.parallel
- Source
- __.scala
Def
Partial map
Partial map
Creates a new Stream.Flow by applying a partial function to all elements of current Stream.Flow on which the function is defined.
- Inherited from
- _build
- Source
- _build.scala
Value check
Value check
Returns true if flow contains given value
- Inherited from
- _use
- Source
- _use.scala
Count and time
Count and time
Returns all elements count and Time.Length it took to pump the flow
val (cnt,time) = (1 <> 1000).stream.parallel.peek(_ => J.sleep(1.Millis)).countAndTime
("" + cnt + " elements processed in " + time.tag).tp
// Output
1000 elements processed in 0.040820901 sec
Note. Only massively parallel execution allowed to process the above example in 0.04 seconds
- Inherited from
- _use
- Source
- _use.scala
Tree description
Tree description
Returns a tree describing all flow trasformations
('a' <> 'z').stream
.take(_ > 'X')
.map(_.toUpper)
.parallel
.docTree.tp
// Output
scalqa.val.stream.z.flow.parallel.JavaStreamParallelFlow@ncwo{}
scalqa.lang.char.g.stream.z.map$Chars@uru4{raw=Char,fromRaw=Char}
scalqa.lang.char.g.Stream$TakeStream$2@56u4{raw=Char,fromRaw=Char}
scalqa.lang.char.g.stream.Z$Stream_fromRange@cq06{raw=Char,size=26,from=a,step=1}
- Inherited from
- _metadata
- Source
- _metadata.scala
Pump flow out
Pump flow out
Fetches and discards all flow elements
This operation can be usefull for side effects built into pipeline
- Inherited from
- _use
- Source
- _use.scala
Reverse filter
Reverse filter
Disallows Stream.Flow elements satisfying the given function
- Inherited from
- _build
- Source
- _build.scala
Exists check
Exists check
Returns true if there is an elemnet satisfying given predicate
- Inherited from
- _use
- Source
- _use.scala
Find value
Find value
Finds value accepted by given predicate
Note: If value is not found operation fails, use findOpt in most cases
- Inherited from
- _use
- Source
- _use.scala
Find optional any value
Find optional any value
Finds any value or returns void option if not found
- Inherited from
- _use
- Source
- _use.scala
Find optional value
Find optional value
Finds value accepted by given predicate or returns void option if not found
- Inherited from
- _use
- Source
- _use.scala
Flat map
Flat map
Creates a new Stream.Flow by applying given function to all elements of current Stream.Flow and concatenating the results
- Inherited from
- _build
- Source
- _build.scala
Fold
Fold
Folds elements with a binary function
- Value Params
- f
binary function to fold elements with
- start
seed value to start with
- Inherited from
- _use
- Source
- _use.scala
Fold and convert
Fold and convert
Folds and converts elements with a binary function
- Value Params
- f
binary function to fold elements with
- start
seed value to start with
- Inherited from
- _use
- Source
- _use.scala
Process flow
Process flow
Applies given function to each flow element
- Inherited from
- _use
- Source
- _use.scala
Forall check
Forall check
Returns true if every single element satisfies the given predicate
- Inherited from
- _use
- Source
- _use.scala
Parallel check
Parallel check
Returns true
if this Parallel is parallel
- Inherited from
- _metadata
- Source
- _metadata.scala
Simple map
Simple map
Creates a new Stream.Flow where each element is a result of applying given function to current Stream.Flow elements
- Inherited from
- _build
- Source
- _build.scala
Optional map
Optional map
Creates a new Stream.Flow where each element is a result of applying given function to current Stream.Flow elements
It the function returns void option, the elements are dropped
- Inherited from
- _build
- Source
- _build.scala
Maximum by property
Maximum by property
Computes maximum value based on given function
Fails for empty streams
- Inherited from
- _use
- Source
- _use.scala
Optional maximum by property
Optional maximum by property
Computes maximum value based on given function or returns void option for empty streams
- Inherited from
- _use
- Source
- _use.scala
Optional maximum
Optional maximum
Computes maximum value or returns void option for empty streams
- Inherited from
- _use
- Source
- _use.scala
Minimum by property
Minimum by property
Computes minimum value based on given function
Fails for empty streams
- Inherited from
- _use
- Source
- _use.scala
Optional minimum by property
Optional minimum by property
Computes minimum value based on given function or returns void option for empty streams
- Inherited from
- _use
- Source
- _use.scala
Optional minimum
Optional minimum
Computes minimum value or returns void option for empty streams
- Inherited from
- _use
- Source
- _use.scala
Inspect
Inspect
The given function will be run for every passing stream flow element.
- Inherited from
- _build
- Source
- _build.scala
Indexed peek
Indexed peek
The given function will be executed for every passing element and its index.
- Inherited from
- _build
- Source
- _build.scala
Optional range
Optional range
Computes value value or returns void option for empty streams
- Inherited from
- _use
- Source
- _use.scala
Reduce
Reduce
Folds elements with a binary function
Note. Threre is no default value, and if flow is empty, operation fails. Use reduceOpt as a safer option
- Value Params
- f
binary function to fold elements with
- Inherited from
- _use
- Source
- _use.scala
Optional reduce
Optional reduce
Folds elements with a binary function or returns empty option when stream is empty
- Value Params
- f
binary function to fold elements with
- Inherited from
- _use
- Source
- _use.scala
Optional long size
Optional long size
Many streams can return their current element count. If the information is not available, void option is returned
var s = (Int.min.Long <> Int.max.toLong).stream
s.sizeLongOpt.tp // Prints Long.Opt(4294967296)
s = s.take(_ > 10) // static sizing is lost
s.sizeLongOpt.tp // Prints Long.Opt(VOID)
- Inherited from
- _metadata
- Source
- _metadata.scala
Optional size
Optional size
Many streams can return their current element count. If the information is not available, void option is returned
Note: If size is known, but exceeds integer range, void option is returned. For theses cases use sizeLongOpt
var s = ('a' <> 'z').stream
s.sizeOpt.tp // Prints Int.Opt(26)
s = s.take(_ > 10) // static sizing is lost
s.sizeOpt.tp // Prints Int.Opt(VOID)
- Inherited from
- _metadata
- Source
- _metadata.scala
Convert to stream
Convert to stream
Wraps Stream.Flow into regular stream.
If Stream.Flow is parallel, then this convertion can be very costly, and it is always prefferable to consume Stream.Flow without going back to Stream
- Inherited from
- _build
- Source
- _build.scala
Sum
Sum
Calculates sum of all values
For empty stream returns zero
- Inherited from
- _use
- Source
- _use.scala
Filter
Filter
Only allow Stream.Flow elements satisfying the given function
- Inherited from
- _build
- Source
- _build.scala