File size: 523 Bytes
11811dc
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
// @flow

/**
 * A type used for returning and propagating errors. The first element of the union
 * represents success and contains a value, and the second represents an error and
 * contains an error value.
 * @private
 */
export type Result<T, E> =
    | {| result: 'success', value: T |}
    | {| result: 'error', value: E |};

export function success<T, E>(value: T): Result<T, E> {
    return {result: 'success', value};
}

export function error<T, E>(value: E): Result<T, E> {
    return {result: 'error', value};
}