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

97 lines 2.55 kB
import type * as Types from "./Types.js"; /** * @since 2.0.0 * @category symbols */ export declare const UpstreamPullRequestTypeId: unique symbol; /** * @since 2.0.0 * @category symbols */ export type UpstreamPullRequestTypeId = typeof UpstreamPullRequestTypeId; /** * @since 2.0.0 * @category models */ export type UpstreamPullRequest<A> = Pulled<A> | NoUpstream; /** * @since 2.0.0 */ export declare namespace UpstreamPullRequest { /** * @since 2.0.0 * @category models */ interface Variance<out A> { readonly [UpstreamPullRequestTypeId]: { readonly _A: Types.Covariant<A>; }; } } /** * @since 2.0.0 * @category models */ export interface Pulled<out A> extends UpstreamPullRequest.Variance<A> { readonly _tag: "Pulled"; readonly value: A; } /** * @since 2.0.0 * @category models */ export interface NoUpstream extends UpstreamPullRequest.Variance<never> { readonly _tag: "NoUpstream"; readonly activeDownstreamCount: number; } /** * @since 2.0.0 * @category constructors */ export declare const Pulled: <A>(value: A) => UpstreamPullRequest<A>; /** * @since 2.0.0 * @category constructors */ export declare const NoUpstream: (activeDownstreamCount: number) => UpstreamPullRequest<never>; /** * Returns `true` if the specified value is an `UpstreamPullRequest`, `false` * otherwise. * * @since 2.0.0 * @category refinements */ export declare const isUpstreamPullRequest: (u: unknown) => u is UpstreamPullRequest<unknown>; /** * Returns `true` if the specified `UpstreamPullRequest` is a `Pulled`, `false` * otherwise. * * @since 2.0.0 * @category refinements */ export declare const isPulled: <A>(self: UpstreamPullRequest<A>) => self is Pulled<A>; /** * Returns `true` if the specified `UpstreamPullRequest` is a `NoUpstream`, * `false` otherwise. * * @since 2.0.0 * @category refinements */ export declare const isNoUpstream: <A>(self: UpstreamPullRequest<A>) => self is NoUpstream; /** * Folds an `UpstreamPullRequest<A>` into a value of type `Z`. * * @since 2.0.0 * @category folding */ export declare const match: { <A, Z>(options: { readonly onPulled: (value: A) => Z; readonly onNoUpstream: (activeDownstreamCount: number) => Z; }): (self: UpstreamPullRequest<A>) => Z; <A, Z>(self: UpstreamPullRequest<A>, options: { readonly onPulled: (value: A) => Z; readonly onNoUpstream: (activeDownstreamCount: number) => Z; }): Z; }; //# sourceMappingURL=UpstreamPullRequest.d.ts.map