UNPKG

effect

Version:

The missing standard library for TypeScript, for writing production-grade software.

46 lines (39 loc) 756 B
/** * @since 2.0.0 */ import { pipeArguments } from "./Pipeable.js" import * as Stream from "./Stream.js" const streamVariance = { /* c8 ignore next */ _R: (_: never) => _, /* c8 ignore next */ _E: (_: never) => _, /* c8 ignore next */ _A: (_: never) => _ } /** * @since 2.0.0 * @category constructors */ export abstract class Class<A, E = never, R = never> implements Stream.Stream<A, E, R> { /** * @since 2.0.0 */ readonly [Stream.StreamTypeId] = streamVariance /** * @since 2.0.0 */ pipe() { return pipeArguments(this, arguments) } /** * @since 2.0.0 */ abstract toStream(): Stream.Stream<A, E, R> /** * @internal */ get channel() { return Stream.toChannel(this.toStream()) } }