<In>(): Sink<Option.Option<In>, In>Creates a sink containing the last value.
When to use
Use when you need to consume all upstream input and keep only the final element.
Details
Returns Option.some(last) with the final input value, or Option.none when
the upstream ends without input.
Gotchas
This sink produces a result only when the upstream ends, so it does not complete for a stream that does not end.
export const const last: <In>() => Sink<
Option.Option<In>,
In
>
Creates a sink containing the last value.
When to use
Use when you need to consume all upstream input and keep only the final
element.
Details
Returns Option.some(last) with the final input value, or Option.none when
the upstream ends without input.
Gotchas
This sink produces a result only when the upstream ends, so it does not
complete for a stream that does not end.
last = <function (type parameter) In in <In>(): Sink<Option.Option<In>, In>In>(): interface Sink<out A, in In = unknown, out L = never, out E = never, out R = never>A Sink<A, In, L, E, R> is used to consume elements produced by a Stream.
You can think of a sink as a function that will consume a variable amount of
In elements (could be 0, 1, or many), might fail with an error of type E,
and will eventually yield a value of type A together with a remainder of
type L (i.e. any leftovers).
Example (Running a sink with a stream)
import { Effect, Sink, Stream } from "effect"
// Create a simple sink that always succeeds with a value
const sink: Sink.Sink<number> = Sink.succeed(42)
// Use the sink to consume a stream
const stream = Stream.make(1, 2, 3)
const program = Stream.run(stream, sink)
Effect.runPromise(program).then(console.log)
// Output: 42
Namespace containing types and interfaces for Sink variance and type relationships.
Sink<import OptionOption.type Option.Option = /*unresolved*/ anyOption<function (type parameter) In in <In>(): Sink<Option.Option<In>, In>In>, function (type parameter) In in <In>(): Sink<Option.Option<In>, In>In> => const last_: Sink<
Option.Option<unknown>,
unknown,
never,
never,
never
>
const last_: {
transform: (upstream: Pull.Pull<NonEmptyReadonlyArray<In>, never, void>, scope: Scope.Scope) => Effect.Effect<End<A, L>, E, R>;
pipe: { <A>(this: A): A; <A, B = never>(this: A, ab: (_: A) => B): B; <A, B = never, C = never>(this: A, ab: (_: A) => B, bc: (_: B) => C): C; <A, B = never, C = never, D = never>(this: A, ab: (_: A) => B, bc: (_: B) => C, cd: (_: C) => D): D; <…;
}
last_ as any