You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
20 lines
523 B
20 lines
523 B
// @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};
|
|
}
|