UNPKG

@conjecture-dev/g-std

Version:

A collection of TypeScript utility functions for common programming tasks

28 lines (27 loc) 746 B
/** * A type-safe way to handle success and failure cases * Similar to Rust's Result type or Haskell's Either * * @template T - The type of the success value * @template E - The type of the error value (defaults to void) */ export type Outcome<T, E = void> = { success: true; ok: T; } | { success: false; error: E; }; /** * Creates a failure outcome * @param error Failure value * @returns Outcome indicating failure */ export declare function Failure<_E = void>(): Outcome<never, void>; export declare function Failure<E>(error: E): Outcome<never, E>; /** * Creates a successful outcome * @param x Success value * @returns Outcome indicating success */ export declare const Success: <T>(x: T) => Outcome<T, never>;