FlowStreamModule

PackageAxial

Summary

NameSignatureSynopsis
unfoldFlowFlowStream.unfoldFlow step initialStateCreates a cold stream by repeatedly running an effectful state transition.
fromSeqFlowStream.fromSeq valuesCreates a stream from a synchronous sequence of values.
emptyFlowStream.empty Creates an empty stream.
singletonFlowStream.singleton valueCreates a stream containing one value.
fromFlowFlowStream.fromFlow flowCreates a one-element stream from an effectful value.
runForEachFlowStream.runForEach action (FlowStream op)Executes the stream and performs a synchronous action for each successful value.
mapFlowStream.map f (FlowStream op)Transforms the successful values of a stream using the provided function.
mapErrorFlowStream.mapError mapper (FlowStream op)Transforms the typed error channel of a stream.
filterFlowStream.filter predicate (FlowStream op)Keeps values that satisfy a predicate.
chooseFlowStream.choose chooser (FlowStream op)Maps and filters values in one operation.
tapFlowFlowStream.tapFlow action (FlowStream op)Runs an effect for each value before emitting the original value.
mapFlowFlowStream.mapFlow mapper (FlowStream op)Transforms every value with a Flow effect.
takeFlowStream.take count (FlowStream op)Emits at most count values.
skipFlowStream.skip count (FlowStream op)Skips the first count values.
takeWhileFlowStream.takeWhile predicate (FlowStream op)Emits values while a predicate remains true.
skipWhileFlowStream.skipWhile predicate (FlowStream op)Skips values while a predicate remains true.
indexedFlowStream.indexed (FlowStream op)Emits each value paired with its zero-based index.
scanFlowStream.scan folder initial (FlowStream op)Emits successive accumulator states.
distinctUntilChangedByFlowStream.distinctUntilChangedBy projection (FlowStream op)Suppresses consecutive duplicate values according to a projection.
appendFlowStream.append (FlowStream right) (FlowStream left)Concatenates two streams, evaluating the second only after the first ends.
collectFlowStream.collect mapper (FlowStream outer)Maps each value to a stream and concatenates the resulting streams.
zipFlowStream.zip (FlowStream right) (FlowStream left)Pairs values from two streams until either stream ends.
runFoldFlowStream.runFold folder initial (FlowStream op)Folds a stream into one value inside Flow.
runCollectFlowStream.runCollect streamCollects all emitted values into a list.
runDrainFlowStream.runDrain streamConsumes a stream and ignores its values.
runForEachFlowFlowStream.runForEachFlow action (FlowStream op)Runs an effectful action for every stream value.

unfoldFlow

FlowStream.unfoldFlow step initialState
Member
Creates a cold stream by repeatedly running an effectful state transition.

Parameters

NameTypeDescription
step'state -> Flow<'env, 'error, ('value * 'state) option>Returns Some(value, nextState) or None when the stream is complete.
initialState'stateThe state used for the first pull.

Returns

FlowStream<'env, 'error, 'value>

Verification Examples

FlowStream.unfoldFlow (fun n -> Flow.ok (if n < 3 then Some(n, n + 1) else None)) 0

fromSeq

FlowStream.fromSeq values
Member
Creates a stream from a synchronous sequence of values.

Parameters

NameTypeDescription
values'value seqThe sequence of values to be emitted by the stream.

Returns

FlowStream<'env, 'error, 'value>

Verification Examples

FlowStream.fromSeq [1..10]
|> FlowStream.runCollect
|> Flow.run ()

empty

FlowStream.empty
Member
Creates an empty stream.

Returns

FlowStream<'env, 'error, 'value>

Verification Examples

FlowStream.empty<unit, string, int>

singleton

FlowStream.singleton value
Member
Creates a stream containing one value.

Parameters

NameTypeDescription
value'value

Returns

FlowStream<'env, 'error, 'value>

Verification Examples

FlowStream.singleton 42

fromFlow

FlowStream.fromFlow flow
Member
Creates a one-element stream from an effectful value.

Parameters

NameTypeDescription
flowFlow<'env, 'error, 'value>

Returns

FlowStream<'env, 'error, 'value>

Verification Examples

FlowStream.fromFlow (Flow.ok 42)

runForEach

FlowStream.runForEach action (FlowStream op)
Member
Executes the stream and performs a synchronous action for each successful value.

Parameters

NameTypeDescription
action'value -> unitThe function to execute for each value emitted by the stream.
FlowStream opFlowStream<'env, 'error, 'value>

Returns

Flow<'env, 'error, unit>

Verification Examples

FlowStream.fromSeq ["a"; "b"; "c"]
|> FlowStream.runForEach (printfn "%s")
|> Flow.run ()

map

FlowStream.map f (FlowStream op)
Member
Transforms the successful values of a stream using the provided function.

Parameters

NameTypeDescription
f'v -> 'wThe function to transform each value.
FlowStream opFlowStream<'env, 'error, 'v>

Returns

FlowStream<'env, 'error, 'w>

Verification Examples

let stream = FlowStream.fromSeq [1; 2; 3] |> FlowStream.map (fun n -> n * 2)

mapError

FlowStream.mapError mapper (FlowStream op)
Member
Transforms the typed error channel of a stream.

Parameters

NameTypeDescription
mapper'error -> 'nextError
FlowStream opFlowStream<'env, 'error, 'value>

Returns

FlowStream<'env, 'nextError, 'value>

Verification Examples

stream |> FlowStream.mapError DomainError

filter

FlowStream.filter predicate (FlowStream op)
Member
Keeps values that satisfy a predicate.

Parameters

NameTypeDescription
predicate'a -> bool
FlowStream opFlowStream<'b, 'c, 'a>

Returns

FlowStream<'b, 'c, 'a>

Verification Examples

stream |> FlowStream.filter (fun value -> value > 0)

choose

FlowStream.choose chooser (FlowStream op)
Member
Maps and filters values in one operation.

Parameters

NameTypeDescription
chooser'a -> 'b option
FlowStream opFlowStream<'c, 'd, 'a>

Returns

FlowStream<'c, 'd, 'b>

Verification Examples

stream |> FlowStream.choose id

tapFlow

FlowStream.tapFlow action (FlowStream op)
Member
Runs an effect for each value before emitting the original value.

Parameters

NameTypeDescription
action'a -> Flow<'b, 'c, unit>
FlowStream opFlowStream<'b, 'c, 'a>

Returns

FlowStream<'b, 'c, 'a>

Verification Examples

stream |> FlowStream.tapFlow logValue

mapFlow

FlowStream.mapFlow mapper (FlowStream op)
Member
Transforms every value with a Flow effect.

Parameters

NameTypeDescription
mapper'a -> Flow<'b, 'c, 'd>
FlowStream opFlowStream<'b, 'c, 'a>

Returns

FlowStream<'b, 'c, 'd>

Verification Examples

ids |> FlowStream.mapFlow load

take

FlowStream.take count (FlowStream op)
Member
Emits at most count values.

Parameters

NameTypeDescription
countint
FlowStream opFlowStream<'a, 'b, 'c>

Returns

FlowStream<'a, 'b, 'c>

Verification Examples

stream |> FlowStream.take 10

skip

FlowStream.skip count (FlowStream op)
Member
Skips the first count values.

Parameters

NameTypeDescription
countint
FlowStream opFlowStream<'a, 'b, 'c>

Returns

FlowStream<'a, 'b, 'c>

Verification Examples

stream |> FlowStream.skip 10

takeWhile

FlowStream.takeWhile predicate (FlowStream op)
Member
Emits values while a predicate remains true.

Parameters

NameTypeDescription
predicate'a -> bool
FlowStream opFlowStream<'b, 'c, 'a>

Returns

FlowStream<'b, 'c, 'a>

Verification Examples

stream |> FlowStream.takeWhile (fun value -> value < 100)

skipWhile

FlowStream.skipWhile predicate (FlowStream op)
Member
Skips values while a predicate remains true.

Parameters

NameTypeDescription
predicate'a -> bool
FlowStream opFlowStream<'b, 'c, 'a>

Returns

FlowStream<'b, 'c, 'a>

Verification Examples

stream |> FlowStream.skipWhile String.IsNullOrEmpty

indexed

FlowStream.indexed (FlowStream op)
Member
Emits each value paired with its zero-based index.

Parameters

NameTypeDescription
FlowStream opFlowStream<'a, 'b, 'c>

Returns

FlowStream<'a, 'b, (int * 'c)>

Verification Examples

stream |> FlowStream.indexed

scan

FlowStream.scan folder initial (FlowStream op)
Member
Emits successive accumulator states.

Parameters

NameTypeDescription
folder'a -> 'b -> 'a
initial'a
FlowStream opFlowStream<'c, 'd, 'b>

Returns

FlowStream<'c, 'd, 'a>

Verification Examples

stream |> FlowStream.scan (+) 0

distinctUntilChangedBy

FlowStream.distinctUntilChangedBy projection (FlowStream op)
Member
Suppresses consecutive duplicate values according to a projection.

Parameters

NameTypeDescription
projection'a -> 'b
FlowStream opFlowStream<'c, 'd, 'a>

Returns

FlowStream<'c, 'd, 'a>

Verification Examples

stream |> FlowStream.distinctUntilChangedBy id

append

FlowStream.append (FlowStream right) (FlowStream left)
Member
Concatenates two streams, evaluating the second only after the first ends.

Parameters

NameTypeDescription
FlowStream rightFlowStream<'a, 'b, 'c>
FlowStream leftFlowStream<'a, 'b, 'c>

Returns

FlowStream<'a, 'b, 'c>

Verification Examples

first |> FlowStream.append second

collect

FlowStream.collect mapper (FlowStream outer)
Member
Maps each value to a stream and concatenates the resulting streams.

Parameters

NameTypeDescription
mapper'a -> FlowStream<'b, 'c, 'd>
FlowStream outerFlowStream<'b, 'c, 'a>

Returns

FlowStream<'b, 'c, 'd>

Verification Examples

stream |> FlowStream.collect FlowStream.fromSeq

zip

FlowStream.zip (FlowStream right) (FlowStream left)
Member
Pairs values from two streams until either stream ends.

Parameters

NameTypeDescription
FlowStream rightFlowStream<'a, 'b, 'c>
FlowStream leftFlowStream<'a, 'b, 'd>

Returns

FlowStream<'a, 'b, ('d * 'c)>

Verification Examples

left |> FlowStream.zip right

runFold

FlowStream.runFold folder initial (FlowStream op)
Member
Folds a stream into one value inside Flow.

Parameters

NameTypeDescription
folder'state -> 'a -> 'state
initial'state
FlowStream opFlowStream<'env, 'error, 'a>

Returns

Flow<'env, 'error, 'state>

Verification Examples

stream |> FlowStream.runFold (+) 0

runCollect

FlowStream.runCollect stream
Member
Collects all emitted values into a list.

Parameters

NameTypeDescription
streamFlowStream<'a, 'b, 'c>

Returns

Flow<'a, 'b, 'c list>

Verification Examples

stream |> FlowStream.runCollect

runDrain

FlowStream.runDrain stream
Member
Consumes a stream and ignores its values.

Parameters

NameTypeDescription
streamFlowStream<'a, 'b, 'c>

Returns

Flow<'a, 'b, unit>

Verification Examples

stream |> FlowStream.runDrain

runForEachFlow

FlowStream.runForEachFlow action (FlowStream op)
Member
Runs an effectful action for every stream value.

Parameters

NameTypeDescription
action'a -> Flow<'env, 'error, unit>
FlowStream opFlowStream<'env, 'error, 'a>

Returns

Flow<'env, 'error, unit>

Verification Examples

stream |> FlowStream.runForEachFlow save