option-t
Version:
A toolkit of Nullable/Option/Result type implementation in ECMAScript. Their APIs are inspired by Rust's `Option<T>` and `Result<T, E>`.
31 lines (30 loc) • 1.95 kB
TypeScript
import type { EffectFn } from '../../internal/function.js';
import { type Result } from '../core/result.js';
/**
* * Return _input_ directly.
* * This value is passed as the input. But it maybe mutated by calling _effector_.
* * Call _effector_ with the inner value of _input_ if _input_ is `Ok(T)`.
* * This main purpose is to inspect an inner value in a chained function calling.
* If you don't have to do it, you should not mutate the inner value.
* if-else statement might be sufficient to mutate the inner value instead of calling this function.
*/
export declare function inspectOkForResult<T, E>(input: Result<T, E>, effector: EffectFn<T>): Result<T, E>;
/**
* * Return _input_ directly.
* * This value is passed as the input. But it maybe mutated by calling _effector_.
* * Call _effector_ with the inner value of _input_ if _input_ is `Err(E)`.
* * This main purpose is to inspect an inner value in a chained function calling.
* If you don't have to do it, you should not mutate the inner value.
* if-else statement might be sufficient to mutate the inner value instead of calling this function.
*/
export declare function inspectErrForResult<T, E>(input: Result<T, E>, effector: EffectFn<E>): Result<T, E>;
/**
* * Return _input_ directly.
* * This value is passed as the input. But it maybe mutated by calling _effector_.
* * Call _okEffector_ with the inner value of _input_ if _input_ is `Ok(T)`.
* Otherwise, call _errEffector_ with the inner value if _input_ is `Err(E)`
* * This main purpose is to inspect an inner value in a chained function calling.
* If you don't have to do it, you should not mutate the inner value.
* if-else statement might be sufficient to mutate the inner value instead of calling this function.
*/
export declare function inspectBothForResult<T, E>(input: Result<T, E>, okEffector: EffectFn<T>, errEffector: EffectFn<E>): Result<T, E>;