UNPKG

veffect

Version:

powerful TypeScript validation library built on the robust foundation of Effect combining exceptional type safety, high performance, and developer experience. Taking inspiration from Effect's functional principles, VEffect delivers a balanced approach tha

109 lines (95 loc) 2.5 kB
/** * @since 2.0.0 */ import type * as Equal from "./Equal.js" import type * as FiberId from "./FiberId.js" import * as internal from "./internal/fiberStatus.js" import type * as RuntimeFlags from "./RuntimeFlags.js" /** * @since 2.0.0 * @category symbols */ export const FiberStatusTypeId: unique symbol = internal.FiberStatusTypeId /** * @since 2.0.0 * @category symbols */ export type FiberStatusTypeId = typeof FiberStatusTypeId /** * @since 2.0.0 * @category models */ export type FiberStatus = Done | Running | Suspended /** * @since 2.0.0 * @category models */ export interface Done extends Equal.Equal { readonly _tag: "Done" readonly [FiberStatusTypeId]: FiberStatusTypeId } /** * @since 2.0.0 * @category models */ export interface Running extends Equal.Equal { readonly _tag: "Running" readonly [FiberStatusTypeId]: FiberStatusTypeId readonly runtimeFlags: RuntimeFlags.RuntimeFlags } /** * @since 2.0.0 * @category models */ export interface Suspended extends Equal.Equal { readonly _tag: "Suspended" readonly [FiberStatusTypeId]: FiberStatusTypeId readonly runtimeFlags: RuntimeFlags.RuntimeFlags readonly blockingOn: FiberId.FiberId } /** * @since 2.0.0 * @category constructors */ export const done: FiberStatus = internal.done /** * @since 2.0.0 * @category constructors */ export const running: (runtimeFlags: RuntimeFlags.RuntimeFlags) => FiberStatus = internal.running /** * @since 2.0.0 * @category constructors */ export const suspended: (runtimeFlags: RuntimeFlags.RuntimeFlags, blockingOn: FiberId.FiberId) => FiberStatus = internal.suspended /** * Returns `true` if the specified value is a `FiberStatus`, `false` otherwise. * * @since 2.0.0 * @category refinements */ export const isFiberStatus: (u: unknown) => u is FiberStatus = internal.isFiberStatus /** * Returns `true` if the specified `FiberStatus` is `Done`, `false` otherwise. * * @since 2.0.0 * @category refinements */ export const isDone: (self: FiberStatus) => self is Done = internal.isDone /** * Returns `true` if the specified `FiberStatus` is `Running`, `false` * otherwise. * * @since 2.0.0 * @category refinements */ export const isRunning: (self: FiberStatus) => self is Running = internal.isRunning /** * Returns `true` if the specified `FiberStatus` is `Suspended`, `false` * otherwise. * * @since 2.0.0 * @category refinements */ export const isSuspended: (self: FiberStatus) => self is Suspended = internal.isSuspended