blob: d57fea7e8aace22acdde9b829ef05611acd00f49 (
plain)
1
2
3
4
5
6
7
8
9
|
export type Result<T, E> =
| { readonly success: true; readonly data: T }
| { readonly success: false; readonly error: E };
export const ok = <T>(data: T): Result<T, never> => ({ success: true, data });
export const err = <E>(error: E): Result<never, E> => ({ success: false, error });
export const map = <T, U, E>(r: Result<T, E>, f: (t: T) => U): Result<U, E> =>
r.success ? ok(f(r.data)) : r;
|