import { AsyncResult, Result } from "."; /** @internal */ export function thenPipe( f: (t: T) => Result, ): (r: Result) => Result { return (r: Result): Result => r.andThen(f); } /** @internal */ export function thenPipeAsync( f: (t: T) => AsyncResult, ): (r: Result) => AsyncResult { return async (r: Result): AsyncResult => await r.andThenAsync(f); } /** @internal */ export function yieldPipe( f: (t: T) => U, ): (r: Result) => Result { return (r: Result): Result => r.yield(f); } /** @internal */ export function yieldOrPipe( u: U, f: (t: T) => U, ): (r: Result) => Result { return (r: Result): Result => r.yieldOr(u, f); } /** @internal */ export function yieldOrElsePipe( u: (e: E) => U, f: (t: T) => U, ): (r: Result) => Result { return (r: Result): Result => r.yieldOrElse(u, f); } /** @internal */ export function elsePipe( f: (e: E) => Result, ): (r: Result) => Result { return (r: Result): Result => r.orElse(f); } /** @internal */ export function elsePipeAsync( f: (e: E) => AsyncResult, ): (r: Result) => AsyncResult { return async (r: Result): AsyncResult => r.orElseAsync(f); } /** @internal */ export function yieldPipeAsync( f: (t: T) => Promise, ): (r: Result) => AsyncResult { return async (r: Result): AsyncResult => r.yieldAsync(f); } /** @internal */ export function errPipe( f: (e: E) => F, ): (r: Result) => Result { return (r: Result): Result => r.yieldErr(f); }