@conjecture-dev/g-std
Version:
A collection of TypeScript utility functions for common programming tasks
28 lines (27 loc) • 746 B
TypeScript
/**
* 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>;