UNPKG

@effect-ts/system

Version:

Effect-TS is a zero dependency set of libraries to write highly productive, purely functional TypeScript at scale.

104 lines 4.01 kB
import type { FiberID } from "../Fiber/id.js"; import type { Trace } from "../Fiber/tracing.js"; import * as IO from "../IO/index.js"; import * as St from "../Structural/index.js"; import type { HasUnify } from "../Utils/index.js"; /** * Cause is a Free Semiring structure that allows tracking of multiple error causes. */ export declare type Cause<E> = Empty | Fail<E> | Die | Interrupt | Then<E> | Both<E> | Traced<E>; export declare const CauseSym: unique symbol; export declare function isCause(self: unknown): self is Cause<unknown>; export interface Empty extends HasUnify { } export declare class Empty implements St.HasEquals, St.HasHash { readonly _tag = "Empty"; readonly [CauseSym]: typeof CauseSym; [St.equalsSym](that: unknown): boolean; get [St.hashSym](): number; equalsSafe(that: Cause<unknown>): IO.IO<boolean>; } export declare const empty: Cause<never>; export interface Fail<E> extends HasUnify { } export declare class Fail<E> implements St.HasEquals, St.HasHash { readonly value: E; readonly _tag = "Fail"; readonly [CauseSym]: typeof CauseSym; constructor(value: E); [St.equalsSym](that: unknown): boolean; get [St.hashSym](): number; equalsSafe(that: Cause<unknown>): IO.IO<boolean>; } export interface Die extends HasUnify { } export declare class Die implements St.HasEquals, St.HasHash, HasUnify { readonly value: unknown; readonly _tag = "Die"; readonly [CauseSym]: typeof CauseSym; constructor(value: unknown); [St.equalsSym](that: unknown): boolean; get [St.hashSym](): number; equalsSafe(that: Cause<unknown>): IO.IO<boolean>; } export interface Interrupt extends HasUnify { } export declare class Interrupt implements St.HasEquals, St.HasHash, HasUnify { readonly fiberId: FiberID; readonly _tag = "Interrupt"; readonly [CauseSym]: typeof CauseSym; constructor(fiberId: FiberID); [St.equalsSym](that: unknown): boolean; get [St.hashSym](): number; equalsSafe(that: Cause<unknown>): IO.IO<boolean>; } export interface Traced<E> extends HasUnify { } export declare class Traced<E> implements St.HasEquals, St.HasHash { readonly cause: Cause<E>; readonly trace: Trace; readonly _tag = "Traced"; readonly [CauseSym]: typeof CauseSym; constructor(cause: Cause<E>, trace: Trace); [St.equalsSym](that: unknown): boolean; get [St.hashSym](): number; equalsSafe(that: Cause<unknown>): IO.IO<boolean>; } export interface Then<E> extends HasUnify { } export declare class Then<E> implements St.HasEquals, St.HasHash { readonly left: Cause<E>; readonly right: Cause<E>; readonly _tag = "Then"; readonly [CauseSym]: typeof CauseSym; constructor(left: Cause<E>, right: Cause<E>); [St.equalsSym](that: unknown): boolean; get [St.hashSym](): number; equalsSafe(that: Cause<unknown>): IO.IO<boolean>; private eq; } export interface Both<E> extends HasUnify { } export declare class Both<E> implements St.HasEquals, St.HasHash { readonly left: Cause<E>; readonly right: Cause<E>; readonly _tag = "Both"; readonly [CauseSym]: typeof CauseSym; constructor(left: Cause<E>, right: Cause<E>); [St.equalsSym](that: unknown): boolean; get [St.hashSym](): number; equalsSafe(that: Cause<unknown>): IO.IO<boolean>; private eq; } export declare function fail<E>(value: E): Cause<E>; export declare function traced<E>(cause: Cause<E>, trace: Trace): Cause<E>; export declare function die(value: unknown): Cause<never>; export declare function interrupt(fiberId: FiberID): Cause<never>; export declare function combineSeq<E1, E2>(left: Cause<E1>, right: Cause<E2>): Cause<E1 | E2>; export declare function combinePar<E1, E2>(left: Cause<E1>, right: Cause<E2>): Cause<E1 | E2>; /** * Determines if the `Cause` is empty. */ export declare function isEmpty<E>(cause: Cause<E>): boolean; export declare function equals<A>(self: Cause<A>, that: Cause<A>): boolean; //# sourceMappingURL=cause.d.ts.map