Class: Result<T, E, Success>
A type used to express computations that can fail, it can be used for returning and propagating errors. This is a
type union with the variants Ok(T)
, representing success and containing a value, and Err(E)
, representing error
and containing an error value.
Typeparam
T The result's type.
Typeparam
E The error's type.
See
https://doc.rust-lang.org/std/result/index.html
Type Parameters
Type Parameter | Default type |
---|---|
T | - |
E | - |
Success extends boolean | boolean |
Constructors
new Result()
private
new Result<T
,E
,Success
>(value
:If
<Success
,T
,E
>,success
:Success
):Result
<T
,E
,Success
>
Parameters
Parameter | Type |
---|---|
value | If <Success , T , E > |
success | Success |
Returns
Result
<T
, E
, Success
>
Defined in
projects/utilities/packages/result/src/lib/Result.ts:28
Properties
__STATUS__
protected
__STATUS__:Success
Internal
Branded value to ensure Success
is typed correctly.
Defined in
projects/utilities/packages/result/src/lib/Result.ts:23
[SuccessProperty]
private
readonly
[SuccessProperty]:Success
Defined in
projects/utilities/packages/result/src/lib/Result.ts:26
[ValueProperty]
private
readonly
[ValueProperty]:If
<Success
,T
,E
>
Defined in
projects/utilities/packages/result/src/lib/Result.ts:25
Accessors
[toStringTag]
Get Signature
get [toStringTag]():
If
<Success
,"Ok"
,"Err"
>
Returns
If
<Success
, "Ok"
, "Err"
>
Defined in
projects/utilities/packages/result/src/lib/Result.ts:993
Methods
[iterator]()
[iterator]():
Generator
<T
,any
,unknown
>
Returns an iterator over the possibly contained value.
The iterator yields one value if the result is Ok
, otherwise none.
Returns
Generator
<T
, any
, unknown
>
Examples
const x = ok(7);
for (const value of x) {
console.log(value);
}
// Logs 7
const x = err('Nothing!');
for (const value of x) {
console.log(value);
}
// Doesn't log
See
Defined in
projects/utilities/packages/result/src/lib/Result.ts:989
and()
and<
OutputResult
>(result
:OutputResult
):If
<Success
,OutputResult
,Err
<E
,any
>>
Returns result
if the result is Ok
, otherwise returns the Err
value of itself.
Type Parameters
Type Parameter |
---|
OutputResult extends Any |
Parameters
Parameter | Type | Description |
---|---|---|
result | OutputResult | The result to check. |
Returns
If
<Success
, OutputResult
, Err
<E
, any
>>
Examples
const x: Result<number, string> = ok(2);
const y: Result<string, string> = err('Late error');
assert.equal(x.and(y), err('Late error'));
const x: Result<number, string> = err('Early error');
const y: Result<string, string> = err('Late error');
assert.equal(x.and(y), err('Early error'));
const x: Result<number, string> = ok(2);
const y: Result<string, string> = ok('Hello');
assert.equal(x.and(y), ok('Hello'));
See
https://doc.rust-lang.org/std/result/enum.Result.html#method.and
Defined in
projects/utilities/packages/result/src/lib/Result.ts:682
andThen()
andThen<
OutputResult
>(cb
: (value
:T
) =>OutputResult
):If
<Success
,OutputResult
,Err
<E
,any
>>
Calls cb
if the result is Ok
, otherwise returns the Err
value of self.
This function can be used for control flow based on Result
values.
Type Parameters
Type Parameter |
---|
OutputResult extends Any |
Parameters
Parameter | Type | Description |
---|---|---|
cb | (value : T ) => OutputResult | The predicate. |
Returns
If
<Success
, OutputResult
, Err
<E
, any
>>
Example
function fractionOf4(value: number) {
return value === 0 ? err('overflowed') : ok(4 / value);
}
assert.equal(ok(2).andThen(fractionOf4), ok(4));
assert.equal(ok(0).andThen(fractionOf4), err('overflowed'));
assert.equal(err('not a number').andThen(fractionOf4), err('not a number'));
See
https://doc.rust-lang.org/std/result/enum.Result.html#method.and_then
Defined in
projects/utilities/packages/result/src/lib/Result.ts:705
contains()
contains(this, value)
contains<
Value
>(this
:Ok
<T
,any
>,value
:Value
):this is Ok<Value, any>
Returns true
if the result is an Ok
and the given value strict equals it.
Type Parameters
Type Parameter |
---|
Value |
Parameters
Parameter | Type | Description |
---|---|---|
this | Ok <T , any > | - |
value | Value | The value to compare. |
Returns
this is Ok<Value, any>
Examples
const x: Result<number, string> = ok(2);
assert.equal(x.contains(2), true);
const x: Result<number, string> = ok(3);
assert.equal(x.contains(2), false);
const x: Result<number, string> = err('Some error message');
assert.equal(x.contains(2), false);
See
https://doc.rust-lang.org/std/result/enum.Result.html#method.contains
Defined in
projects/utilities/packages/result/src/lib/Result.ts:792
contains(this, value)
contains(
this
:Err
<E
,any
>,value
:T
):false
Parameters
Parameter | Type |
---|---|
this | Err <E , any > |
value | T |
Returns
false
Defined in
projects/utilities/packages/result/src/lib/Result.ts:793
containsErr()
containsErr(this, error)
containsErr(
this
:Ok
<T
,any
>,error
:E
):false
Returns true
if the result is an Err
and the given error strict equals it.
Parameters
Parameter | Type | Description |
---|---|---|
this | Ok <T , any > | - |
error | E | The error to compare. |
Returns
false
Examples
const x: Result<number, string> = ok(2);
assert.equal(x.containsErr('Some error message'), false);
const x: Result<number, string> = err('Some error message');
assert.equal(x.containsErr('Some error message'), true);
const x: Result<number, string> = err('Some other error message');
assert.equal(x.containsErr('Some error message'), false);
See
https://doc.rust-lang.org/std/result/enum.Result.html#method.contains_err
Defined in
projects/utilities/packages/result/src/lib/Result.ts:820
containsErr(this, error)
containsErr<
Value
>(this
:Err
<E
,any
>,error
:Value
):this is Err<Value, any>
Type Parameters
Type Parameter |
---|
Value |
Parameters
Parameter | Type |
---|---|
this | Err <E , any > |
error | Value |
Returns
this is Err<Value, any>
Defined in
projects/utilities/packages/result/src/lib/Result.ts:821
eq()
eq<
OtherValue
,OtherError
,OtherSuccess
>(other
:Result
<OtherValue
,OtherError
,OtherSuccess
>):this is Result<OtherValue, OtherError, OtherSuccess>
Checks whether or not other
equals with self.
Type Parameters
Type Parameter |
---|
OtherValue |
OtherError |
OtherSuccess extends boolean |
Parameters
Parameter | Type | Description |
---|---|---|
other | Result <OtherValue , OtherError , OtherSuccess > | The other result to compare. |
Returns
this is Result<OtherValue, OtherError, OtherSuccess>
See
https://doc.rust-lang.org/std/cmp/trait.PartialEq.html#tymethod.eq
Defined in
projects/utilities/packages/result/src/lib/Result.ts:918
err()
Converts from Result<T, E>
to Option<E>
.
Converts itself into an Option<E>
, and discarding the successful value, if any.
Returns
Examples
const x: Result<number, string> = ok(2);
assert.equal(x.err(), none);
const x: Result<number, string> = err('Some error message');
assert.equal(x.err(), 'Some error message');
See
https://doc.rust-lang.org/std/result/enum.Result.html#method.err
Defined in
projects/utilities/packages/result/src/lib/Result.ts:168
expect()
expect(
message
:string
):If
<Success
,T
,never
>
Returns the contained Ok
value.
If the value is an Err
, it throws a ResultError with the given message and the content of the Err
.
Parameters
Parameter | Type | Description |
---|---|---|
message | string | The message for the error. |
Returns
If
<Success
, T
, never
>
Examples
const x = ok(2);
assert.equal(x.expect('Whoops!'), 2);
const x = err('Emergency failure');
assert.throws(() => x.expect('Whoops!'), {
name: 'ResultError',
message: 'Whoops',
value: 'Emergency failure'
});
See
https://doc.rust-lang.org/std/result/enum.Result.html#method.expect
Defined in
projects/utilities/packages/result/src/lib/Result.ts:479
expectErr()
expectErr(
message
:string
):If
<Success
,never
,E
>
Returns the contained Err
value.
If the value is an Ok
, it throws a ResultError with the given message and the content of the Ok
.
Parameters
Parameter | Type | Description |
---|---|---|
message | string | The message for the error. |
Returns
If
<Success
, never
, E
>
Examples
const x = ok(2);
assert.throws(() => x.expectErr('Whoops!'), {
name: 'ResultError',
message: 'Whoops',
value: 2
});
const x = err('Emergency failure');
assert.equal(x.expectErr('Whoops!'), 'Emergency failure');
See
https://doc.rust-lang.org/std/result/enum.Result.html#method.expect_err
Defined in
projects/utilities/packages/result/src/lib/Result.ts:507
flatten()
flatten<
InnerResult
>(this
:Result
<InnerResult
,E
,Success
>):If
<Success
,InnerResult
,Err
<E
,any
>>
Converts from Result<Result<T, E>, E>
to Result<T, E>
.
Type Parameters
Type Parameter |
---|
InnerResult extends Any |
Parameters
Parameter | Type |
---|---|
this | Result <InnerResult , E , Success > |
Returns
If
<Success
, InnerResult
, Err
<E
, any
>>
Examples
const x: Result<Result<string, number>, number> = ok(ok('Hello'));
assert.equal(x.flatten(), ok('Hello'));
const x: Result<Result<string, number>, number> = ok(err(6));
assert.equal(x.flatten(), err(6));
const x: Result<Result<string, number>, number> = err(6);
assert.equal(x.flatten(), err(6));
See
https://doc.rust-lang.org/std/result/enum.Result.html#method.flatten
Defined in
projects/utilities/packages/result/src/lib/Result.ts:870
inspect()
inspect(
cb
: (value
:T
) =>unknown
):this
Calls the provided closure with a reference to the contained value (if Ok
).
Parameters
Parameter | Type | Description |
---|---|---|
cb | (value : T ) => unknown | The predicate. |
Returns
this
Seealso
inspectAsync for the awaitable version.
Examples
ok(2).inspect(console.log);
// Logs: 2
err('Some error message').inspect(console.log);
// Doesn't log
See
https://doc.rust-lang.org/std/result/enum.Result.html#method.inspect
Defined in
projects/utilities/packages/result/src/lib/Result.ts:354
inspectAsync()
inspectAsync(
cb
: (value
:T
) =>unknown
):Promise
<Result
<T
,E
,Success
>>
Calls the provided closure with a reference to the contained value (if Ok
) and awaits it.
Parameters
Parameter | Type | Description |
---|---|---|
cb | (value : T ) => unknown | The predicate. |
Returns
Promise
<Result
<T
, E
, Success
>>
Seealso
inspect for the sync version.
Examples
await ok(2).inspectAsync(console.log);
// Logs: 2
await err('Some error message').inspectAsync(console.log);
// Doesn't log
Note
This is an extension not supported in Rust
Defined in
projects/utilities/packages/result/src/lib/Result.ts:377
inspectErr()
inspectErr(
cb
: (error
:E
) =>unknown
):this
Calls the provided closure with a reference to the contained error (if Err
).
Parameters
Parameter | Type | Description |
---|---|---|
cb | (error : E ) => unknown | The predicate. |
Returns
this
Seealso
inspectErrAsync for the awaitable version.
Examples
ok(2).inspectErr(console.log);
// Doesn't log
err('Some error message').inspectErr(console.log);
// Logs: Some error message
See
https://doc.rust-lang.org/std/result/enum.Result.html#method.inspect_err
Defined in
projects/utilities/packages/result/src/lib/Result.ts:400
inspectErrAsync()
inspectErrAsync(
cb
: (error
:E
) =>unknown
):Promise
<Result
<T
,E
,Success
>>
Calls the provided closure with a reference to the contained error (if Err
) and awaits it.
Parameters
Parameter | Type | Description |
---|---|---|
cb | (error : E ) => unknown | The predicate. |
Returns
Promise
<Result
<T
, E
, Success
>>
Seealso
inspectErr for the sync version.
Examples
await ok(2).inspectErrAsync(console.log);
// Doesn't log
await err('Some error message').inspectErrAsync(console.log);
// Logs: Some error message
Note
This is an extension not supported in Rust
Defined in
projects/utilities/packages/result/src/lib/Result.ts:423
intoOkOrErr()
intoOkOrErr():
If
<Success
,T
,E
>
Returns the Ok
value if self is Ok
, and the Err
value if self is Err
.
Returns
If
<Success
, T
, E
>
Examples
let x: Result<number, number> = ok(3);
assert.equal(x.intoOkOrErr(), 3);
let x: Result<number, number> = err(4);
assert.equal(x.intoOkOrErr(), 4);
See
https://doc.rust-lang.org/std/result/enum.Result.html#method.into_ok_or_err
Defined in
projects/utilities/packages/result/src/lib/Result.ts:890
intoPromise()
intoPromise():
If
<Success
,Promise
<Ok
<Awaited
<T
>,any
>>,Promise
<Err
<Awaited
<E
>,any
>>>
Returns a Promise
object with the awaited value (if Ok
) or the awaited error (if Err
).
Returns
If
<Success
, Promise
<Ok
<Awaited
<T
>, any
>>, Promise
<Err
<Awaited
<E
>, any
>>>
Example
let x = ok(Promise.resolve(3));
assert.equal(await x.intoPromise(), ok(3));
Note
This is an extension not supported in Rust
Defined in
projects/utilities/packages/result/src/lib/Result.ts:905
isErr()
isErr():
this is Err<E, T>
Returns true
if the result is Err
.
Returns
this is Err<E, T>
Examples
const x = ok(-3);
assert.equal(x.isErr(), false);
const x = err('Some error message');
assert.equal(x.isErr(), true);
See
https://doc.rust-lang.org/std/result/enum.Result.html#method.is_err
Defined in
projects/utilities/packages/result/src/lib/Result.ts:96
isErrAnd()
isErrAnd(cb)
isErrAnd<
R
>(cb
: (error
:E
) =>error is R
):this is Err<R, T>
Returns true
if the result is Err
and the value inside of it matches a predicate.
Type Parameters
Type Parameter |
---|
R |
Parameters
Parameter | Type | Description |
---|---|---|
cb | (error : E ) => error is R | The predicate. |
Returns
this is Err<R, T>
Examples
const x = ok(2);
assert.equal(x.isErrAnd((error) => error instanceof TypeError), false);
const x = err(new Error('Some error message'));
assert.equal(x.isErrAnd((error) => error instanceof TypeError), false);
const x = err(new TypeError('Some error message'));
assert.equal(x.isErrAnd((error) => error instanceof TypeError), true);
See
https://doc.rust-lang.org/std/result/enum.Result.html#method.is_err_and
Defined in
projects/utilities/packages/result/src/lib/Result.ts:122
isErrAnd(cb)
isErrAnd<
R
>(cb
: (error
:E
) =>R
):this is Err<E, T> & R
Type Parameters
Type Parameter |
---|
R extends boolean |
Parameters
Parameter | Type |
---|---|
cb | (error : E ) => R |
Returns
this is Err<E, T> & R
Defined in
projects/utilities/packages/result/src/lib/Result.ts:123
isOk()
isOk():
this is Ok<T, E>
Returns true
if the result is Ok
.
Returns
this is Ok<T, E>
Examples
const x = ok(-3);
assert.equal(x.isOk(), true);
const x = err('Some error message');
assert.equal(x.isOk(), false);
See
https://doc.rust-lang.org/std/result/enum.Result.html#method.is_ok
Defined in
projects/utilities/packages/result/src/lib/Result.ts:49
isOkAnd()
isOkAnd(cb)
isOkAnd<
R
>(cb
: (value
:T
) =>value is R
):this is Ok<R, E>
Returns true
if the result is Ok
and the value inside of it matches a predicate.
Type Parameters
Type Parameter |
---|
R |
Parameters
Parameter | Type |
---|---|
cb | (value : T ) => value is R |
Returns
this is Ok<R, E>
Examples
const x = ok(2);
assert.equal(x.isOkAnd((value) => value > 1), true);
const x = ok(0);
assert.equal(x.isOkAnd((value) => value > 1), false);
const x = err('Some error message');
assert.equal(x.isOkAnd((value) => value > 1), false);
See
https://doc.rust-lang.org/std/result/enum.Result.html#method.is_ok_and
Defined in
projects/utilities/packages/result/src/lib/Result.ts:74
isOkAnd(cb)
isOkAnd<
R
>(cb
: (value
:T
) =>R
):this is Ok<T, E> & R
Type Parameters
Type Parameter |
---|
R extends boolean |
Parameters
Parameter | Type |
---|---|
cb | (value : T ) => R |
Returns
this is Ok<T, E> & R
Defined in
projects/utilities/packages/result/src/lib/Result.ts:75
iter()
iter():
Generator
<T
,any
,unknown
>
Returns an iterator over the possibly contained value.
The iterator yields one value if the result is Ok
, otherwise none.
Returns
Generator
<T
, any
, unknown
>
Examples
const x = ok(7);
for (const value of x.iter()) {
console.log(value);
}
// Logs 7
const x = err('Nothing!');
for (const value of x.iter()) {
console.log(value);
}
// Doesn't log
See
https://doc.rust-lang.org/std/result/enum.Result.html#method.iter
Defined in
projects/utilities/packages/result/src/lib/Result.ts:452
map()
map<
OutputValue
>(cb
: (value
:T
) =>OutputValue
):If
<Success
,Ok
<OutputValue
,E
>,Err
<E
,any
>>
Maps a Result<T, E>
to Result<U, E>
by applying a function to a contained Ok
value, leaving an Err
value
untouched.
Type Parameters
Type Parameter |
---|
OutputValue |
Parameters
Parameter | Type | Description |
---|---|---|
cb | (value : T ) => OutputValue | The predicate. |
Returns
If
<Success
, Ok
<OutputValue
, E
>, Err
<E
, any
>>
Examples
const x: Result<number, string> = ok(2);
assert.equal(x.map((value) => value * 2), ok(4));
const x: Result<number, string> = err('Some error message');
assert.equal(x.map((value) => value * 2), err('Some error message'));
See
https://doc.rust-lang.org/std/result/enum.Result.html#method.map
Defined in
projects/utilities/packages/result/src/lib/Result.ts:190
mapErr()
mapErr<
OutputError
>(cb
: (error
:E
) =>OutputError
):If
<Success
,Ok
<T
,any
>,Err
<OutputError
,any
>>
Maps a Result<T, E>
to Result<T, F>
by applying a function to a contained Err
value, leaving an Ok
value
untouched.
This function can be used to pass through a successful result while handling an error.
Type Parameters
Type Parameter |
---|
OutputError |
Parameters
Parameter | Type | Description |
---|---|---|
cb | (error : E ) => OutputError | The predicate. |
Returns
If
<Success
, Ok
<T
, any
>, Err
<OutputError
, any
>>
Examples
const x: Result<number, Error> = ok(2);
assert.equal(x.mapErr((error) => error.message), ok(2));
const x: Result<number, Error> = err(new Error('Some error message'));
assert.equal(x.mapErr((error) => error.message), err('Some error message'));
See
https://doc.rust-lang.org/std/result/enum.Result.html#method.map_err
Defined in
projects/utilities/packages/result/src/lib/Result.ts:300
mapErrInto()
mapErrInto<
OutputResult
>(cb
: (error
:E
) =>OutputResult
):If
<Success
,Ok
<T
,any
>,OutputResult
>
Maps a Result<T, E>
to Result<T, F>
by applying a function to a contained Err
value, leaving an Ok
value
untouched.
This function can be used to pass through a successful result while handling an error.
Unlike mapErr, this method does not wrap the returned value inside Err
, but instead, it returns the
returned value.
Type Parameters
Type Parameter |
---|
OutputResult extends Any |
Parameters
Parameter | Type | Description |
---|---|---|
cb | (error : E ) => OutputResult | The predicate. |
Returns
If
<Success
, Ok
<T
, any
>, OutputResult
>
Examples
const x: Result<number, Error> = ok(2);
assert.equal(x.mapErrInto((error) => err(error.message)), ok(2));
const x: Result<number, Error> = err(new Error('Some error message'));
assert.equal(x.mapErrInto((error) => err(error.message)), err('Some error message'));
const x: Result<number, Error> = err(new Error('Some error message'));
assert.equal(x.mapErrInto((error) => ok(4)), ok(4));
Note
This is an extension not supported in Rust
Defined in
projects/utilities/packages/result/src/lib/Result.ts:332
mapInto()
mapInto<
OutputResult
>(cb
: (value
:T
) =>OutputResult
):If
<Success
,OutputResult
,Err
<E
,any
>>
Maps a Result<T, E>
to Result<T, F>
by applying a function to a contained Ok
value, leaving an Err
value
untouched.
Unlike map, this method does not wrap the returned value inside Ok
, but instead, it returns the
returned value.
Type Parameters
Type Parameter |
---|
OutputResult extends Any |
Parameters
Parameter | Type | Description |
---|---|---|
cb | (value : T ) => OutputResult | The predicate. |
Returns
If
<Success
, OutputResult
, Err
<E
, any
>>
Examples
const x: Result<number, string> = ok(2);
assert.equal(x.mapInto((value) => ok(value * value)), ok(4));
const x: Result<number, string> = ok(0);
assert.equal(
x.mapInto((value) => (value === 0 ? err('zero is not divisible') : ok(1 / value))),
err('zero is not divisible')
);
const x: Result<number, string> = err('Some error message');
assert.equal(x.mapInto((value) => ok(4)), err('Some error message'));
Note
This is an extension not supported in Rust
Defined in
projects/utilities/packages/result/src/lib/Result.ts:223
mapOr()
mapOr<
MappedOutputValue
,DefaultOutputValue
>(defaultValue
:DefaultOutputValue
,cb
: (value
:T
) =>MappedOutputValue
):If
<Success
,MappedOutputValue
,DefaultOutputValue
>
Returns the provided default (if Err
), or applies a function to the contained value (if Ok
),
Arguments passed to mapOr
are eagerly evaluated; if you are passing the result of a function call, it is
recommended to use mapOrElse
, which is lazily evaluated.
Type Parameters
Type Parameter |
---|
MappedOutputValue |
DefaultOutputValue |
Parameters
Parameter | Type | Description |
---|---|---|
defaultValue | DefaultOutputValue | The default value to use. |
cb | (value : T ) => MappedOutputValue | The predicate. |
Returns
If
<Success
, MappedOutputValue
, DefaultOutputValue
>
Examples
const x = ok('hello');
assert.equal(x.mapOr(42, (value) => value.length), 5);
const x = err('Some error message');
assert.equal(x.mapOr(42, (value) => value.length), 42);
See
https://doc.rust-lang.org/std/result/enum.Result.html#method.map_or
Defined in
projects/utilities/packages/result/src/lib/Result.ts:248
mapOrElse()
mapOrElse<
OutputValue
,OutputError
>(op
: (error
:E
) =>OutputError
,cb
: (value
:T
) =>OutputValue
):If
<Success
,OutputValue
,OutputError
>
Maps a Result<T, E>
to U
by applying fallback function default to a contained Err
value, or function cb
to a contained Ok
value.
This function can be used to unpack a successful result while handling an error.
Type Parameters
Type Parameter |
---|
OutputValue |
OutputError |
Parameters
Parameter | Type | Description |
---|---|---|
op | (error : E ) => OutputError | The predicate that is run on Err . |
cb | (value : T ) => OutputValue | The predicate that is run on Ok . |
Returns
If
<Success
, OutputValue
, OutputError
>
Examples
const x: Result<string, string> = ok('hello');
assert.equal(x.mapOrElse((error) => error.length, (value) => value.length), 5);
const x: Result<string, string> = err('Some error message');
assert.equal(x.mapOrElse((error) => error.length, (value) => value.length), 18);
See
https://doc.rust-lang.org/std/result/enum.Result.html#method.map_or_else
Defined in
projects/utilities/packages/result/src/lib/Result.ts:276
match()
match<
OkValue
,ErrValue
>(branches
:object
):If
<Success
,OkValue
,ErrValue
>
Runs ok
function if self is Ok
, otherwise runs err
function.
Type Parameters
Type Parameter |
---|
OkValue |
ErrValue |
Parameters
Parameter | Type | Description |
---|---|---|
branches | object | The branches to match. |
branches.err | - | |
branches.ok | - |
Returns
If
<Success
, OkValue
, ErrValue
>
Examples
const result = ok(4).match({
ok: (v) => v,
err: () => 0
});
assert.equal(result, 4);
const result = err('Hello').match({
ok: (v) => v,
err: () => 0
});
assert.equal(result, 0);
Defined in
projects/utilities/packages/result/src/lib/Result.ts:956
ne()
ne(
other
:Result
<T
,E
,boolean
>):boolean
Checks whether or not other
doesn't equal with self.
Parameters
Parameter | Type | Description |
---|---|---|
other | Result <T , E , boolean > | The other result to compare. |
Returns
boolean
See
https://doc.rust-lang.org/std/cmp/trait.PartialEq.html#method.ne
Defined in
projects/utilities/packages/result/src/lib/Result.ts:931
ok()
Converts from Result<T, E>
to Option<T>
.
Converts itself into an Option<T>
, and discarding the error, if any.
Returns
Examples
const x: Result<number, string> = ok(2);
assert.equal(x.ok(), some(2));
const x: Result<number, string> = err('Some error message');
assert.equal(x.ok(), none);
See
https://doc.rust-lang.org/std/result/enum.Result.html#method.ok
Defined in
projects/utilities/packages/result/src/lib/Result.ts:146
or()
or<
OutputResult
>(result
:OutputResult
):If
<Success
,Ok
<T
,any
>,OutputResult
>
Return result
if the result is Err
, otherwise returns the Ok
value of self.
Arguments passed to or are eagerly evaluated; if you are passing the result of a function call, it is recommended to use orElse, which is lazily evaluated.
Type Parameters
Type Parameter |
---|
OutputResult extends Any |
Parameters
Parameter | Type | Description |
---|---|---|
result | OutputResult | The result to check. |
Returns
If
<Success
, Ok
<T
, any
>, OutputResult
>
Examples
const x: Result<number, string> = ok(2);
const y: Result<number, string> = err('Late error');
assert.equal(x.or(y), ok(2));
const x: Result<number, string> = err('Early error');
const y: Result<number, string> = ok(2);
assert.equal(x.or(y), ok(2));
const x: Result<number, string> = err('Early error');
const y: Result<number, string> = err('Late error');
assert.equal(x.or(y), err('Late error'));
const x: Result<number, string> = ok(2);
const y: Result<number, string> = ok(100);
assert.equal(x.or(y), ok(2));
See
https://doc.rust-lang.org/std/result/enum.Result.html#method.or
Defined in
projects/utilities/packages/result/src/lib/Result.ts:743
orElse()
orElse<
OutputResult
>(cb
: (error
:E
) =>OutputResult
):If
<Success
,Ok
<T
,any
>,OutputResult
>
Calls cb
if the result is Err
, otherwise returns the Ok
value of self.
This function can be used for control flow based on result values.
Type Parameters
Type Parameter |
---|
OutputResult extends Any |
Parameters
Parameter | Type | Description |
---|---|---|
cb | (error : E ) => OutputResult | The predicate. |
Returns
If
<Success
, Ok
<T
, any
>, OutputResult
>
Example
const square = (x: number): Result<number, string> => ok(x * x);
const wrapErr = (x: number): Result<number, string> => err(x);
assert.equal(ok(2).orElse(square).orElse(square), ok(2));
assert.equal(ok(2).orElse(wrapErr).orElse(square), ok(2));
assert.equal(err(3).orElse(square).orElse(wrapErr), ok(9));
assert.equal(err(3).orElse(wrapErr).orElse(wrapErr), err(3));
See
https://doc.rust-lang.org/std/result/enum.Result.html#method.or_else
Defined in
projects/utilities/packages/result/src/lib/Result.ts:766
transpose()
transpose<
InnerValue
>(this
:Result
<Option
<InnerValue
,boolean
>,E
,Success
>):If
<Success
,Option
<Ok
<InnerValue
,any
>,boolean
>,Some
<Err
<E
,any
>>>
Transposes a Result
of an Option
into an Option
of a Result
.
ok(none)
will be mapped to none
. ok(some(v))
and err(e)
will be mapped to some(ok(v))
and some(err(e))
.
Type Parameters
Type Parameter |
---|
InnerValue |
Parameters
Parameter | Type |
---|---|
this | Result <Option <InnerValue , boolean >, E , Success > |
Returns
If
<Success
, Option
<Ok
<InnerValue
, any
>, boolean
>, Some
<Err
<E
, any
>>>
Example
const x: Result<Option<number>, Error> = ok(some(5));
const y: Option<Result<number, Error>> = some(ok(5));
assert.equal(x.transpose(), y);
See
https://doc.rust-lang.org/std/result/enum.Result.html#method.transpose
Defined in
projects/utilities/packages/result/src/lib/Result.ts:840
unwrap()
unwrap():
If
<Success
,T
,never
>
Returns the contained Ok
value.
If the value is an Err
, it throws a ResultError with the message, and the content of the Err
.
Returns
If
<Success
, T
, never
>
Seealso
Seealso
Seealso
Seealso
Examples
const x = ok(2);
assert.equal(x.unwrap(), 2);
const x = err('Emergency failure');
assert.throws(() => x.unwrap(), {
name: 'ResultError',
message: 'Unwrap failed',
value: 'Emergency failure'
});
See
https://doc.rust-lang.org/std/result/enum.Result.html#method.unwrap
Defined in
projects/utilities/packages/result/src/lib/Result.ts:538
unwrapErr()
unwrapErr():
If
<Success
,never
,E
>
Returns the contained Err
value.
If the value is an Ok
, it throws a ResultError with the message, and the content of the Ok
.
Returns
If
<Success
, never
, E
>
Seealso
Seealso
Seealso
Seealso
Examples
const x = ok(2);
assert.throws(() => x.unwrapErr(), {
name: 'ResultError',
message: 'Unwrap failed',
value: 2
});
const x = err('Emergency failure');
assert.equal(x.unwrapErr(), 'Emergency failure');
See
https://doc.rust-lang.org/std/result/enum.Result.html#method.unwrap_err
Defined in
projects/utilities/packages/result/src/lib/Result.ts:569
unwrapOr()
unwrapOr<
OutputValue
>(defaultValue
:OutputValue
):If
<Success
,T
,OutputValue
>
Returns the contained Ok
value or the provided default.
Arguments passed to unwrapOr
are eagerly evaluated; if you are passing the result of a function call, it is
recommended to use unwrapOrElse, which is lazily evaluated.
Type Parameters
Type Parameter |
---|
OutputValue |
Parameters
Parameter | Type | Description |
---|---|---|
defaultValue | OutputValue | The default value. |
Returns
If
<Success
, T
, OutputValue
>
Seealso
Seealso
Seealso
Seealso
Examples
const x: Result<number, string> = ok(9);
assert.equal(x.unwrapOr(2), 9);
const x: Result<number, string> = err('Error');
assert.equal(x.unwrapOr(2), 2);
See
https://doc.rust-lang.org/std/result/enum.Result.html#method.unwrap_or
Defined in
projects/utilities/packages/result/src/lib/Result.ts:599
unwrapOrElse()
unwrapOrElse<
OutputValue
>(op
: (error
:E
) =>OutputValue
):If
<Success
,T
,OutputValue
>
Returns the contained Ok
value or computes it from a closure.
Type Parameters
Type Parameter |
---|
OutputValue |
Parameters
Parameter | Type | Description |
---|---|---|
op | (error : E ) => OutputValue | The predicate. |
Returns
If
<Success
, T
, OutputValue
>
Seealso
Seealso
Seealso
Seealso
Example
const count = (x: string) => x.length;
assert.equal(ok(2).unwrapOrElse(count), 2);
assert.equal(err('hello').unwrapOrElse(count), 5);
See
https://doc.rust-lang.org/std/result/enum.Result.html#method.unwrap_or_else
Defined in
projects/utilities/packages/result/src/lib/Result.ts:622
unwrapRaw()
unwrapRaw():
If
<Success
,T
,never
>
Returns the contained Ok
value.
If the value is an Err
, it throws the contained error.
Returns
If
<Success
, T
, never
>
Seealso
Seealso
Seealso
Seealso
Examples
const x = ok(2);
assert.equal(x.unwrapRaw(), 2);
const x = err('Emergency failure');
assert.throws(() => x.unwrapRaw(), {
name: 'Error',
message: 'Unwrap failed',
value: 'Emergency failure'
});
Defined in
projects/utilities/packages/result/src/lib/Result.ts:650
[hasInstance]()
static
[hasInstance](instance
:unknown
):boolean
Checks if the instance
object is an instance of Result
, or if it is a Result
-like object. This override
exists to interoperate with other versions of this class, such as the one coming from another version of this
library or from a different build.
Parameters
Parameter | Type | Description |
---|---|---|
instance | unknown | The instance to check. |
Returns
boolean
Whether or not the instance is a Result
.
Example
import { Result } from '@sapphire/result';
const { ok } = require('@sapphire/result');
ok(2) instanceof Result; // true
Defined in
projects/utilities/packages/result/src/lib/Result.ts:1027
all()
static
all<Entries
>(this
:void
,results
:Entries
):Result
<UnwrapOkArray
<Entries
>,UnwrapErrArray
<Entries
>[number
],boolean
>
Creates an Ok that is the combination of all collected Ok values as an array, or the first Err encountered.
Type Parameters
Type Parameter |
---|
Entries extends readonly Any [] |
Parameters
Parameter | Type | Description |
---|---|---|
this | void | - |
results | Entries | An array of Results. |
Returns
Result
<UnwrapOkArray
<Entries
>, UnwrapErrArray
<Entries
>[number
], boolean
>
A new Result.
Defined in
projects/utilities/packages/result/src/lib/Result.ts:1109
any()
static
any<Entries
>(this
:void
,results
:Entries
):Result
<UnwrapOk
<Entries
[number
]>,UnwrapErrArray
<Entries
>,boolean
>
Returns the first encountered Ok, or an Err that is the combination of all collected error values.
Type Parameters
Type Parameter |
---|
Entries extends readonly Any [] |
Parameters
Parameter | Type | Description |
---|---|---|
this | void | - |
results | Entries | An array of Results. |
Returns
Result
<UnwrapOk
<Entries
[number
]>, UnwrapErrArray
<Entries
>, boolean
>
A new Result.
Defined in
projects/utilities/packages/result/src/lib/Result.ts:1130
err()
static
err<E
,T
>(this
:void
,value
?:E
):Err
<E
,T
>
Type Parameters
Type Parameter | Default type |
---|---|
E | undefined |
T | any |
Parameters
Parameter | Type |
---|---|
this | void |
value ? | E |
Returns
Err
<E
, T
>
Defined in
projects/utilities/packages/result/src/lib/Result.ts:1005
from()
static
from<T
,E
>(this
:void
,op
:ResultResolvable
<T
,E
,boolean
> | () =>ResultResolvable
<T
,E
,boolean
>):Result
<T
,E
,boolean
>
Creates a Result out of a callback.
Type Parameters
Type Parameter | Default type |
---|---|
T | - |
E | unknown |
Parameters
Parameter | Type |
---|---|
this | void |
op | ResultResolvable <T , E , boolean > | () => ResultResolvable <T , E , boolean > |
Returns
Result
<T
, E
, boolean
>
Typeparam
T The result's type.
Typeparam
E The error's type.
Defined in
projects/utilities/packages/result/src/lib/Result.ts:1076
fromAsync()
static
fromAsync<T
,E
>(this
:void
,op
:Awaitable
<ResultResolvable
<T
,E
,boolean
>> | () =>Awaitable
<ResultResolvable
<T
,E
,boolean
>>):Promise
<Result
<T
,E
,boolean
>>
Creates a Result out of a promise or async callback.
Type Parameters
Type Parameter | Default type |
---|---|
T | - |
E | unknown |
Parameters
Parameter | Type |
---|---|
this | void |
op | Awaitable <ResultResolvable <T , E , boolean >> | () => Awaitable <ResultResolvable <T , E , boolean >> |
Returns
Promise
<Result
<T
, E
, boolean
>>
Typeparam
T The result's type.
Typeparam
E The error's type.
Defined in
projects/utilities/packages/result/src/lib/Result.ts:1090
is()
static
is(instance
:unknown
):instance is Any
Parameters
Parameter | Type | Description |
---|---|---|
instance | unknown | The instance to check. |
Returns
instance is Any
true if the instance is a Result
or a Result
-like object, false otherwise.
Deprecated
Use Result.isResult instead.
Checks if the instance
object is an instance of Result
, or if it is a Result
-like object.
Example
import { Result } from '@sapphire/result';
const { ok } = require('@sapphire/result');
Result.isResult(ok(2)); // true
Defined in
projects/utilities/packages/result/src/lib/Result.ts:1047
isResult()
static
isResult(instance
:unknown
):instance is Any
Checks if the instance
object is an instance of Result
, or if it is a Result
-like object.
Parameters
Parameter | Type | Description |
---|---|---|
instance | unknown | The instance to check. |
Returns
instance is Any
true if the instance is a Result
or a Result
-like object, false otherwise.
Example
import { Result } from '@sapphire/result';
const { ok } = require('@sapphire/result');
Result.isResult(ok(2)); // true
Defined in
projects/utilities/packages/result/src/lib/Result.ts:1065
ok()
static
ok<T
,E
>(this
:void
,value
?:T
):Ok
<T
,E
>
Type Parameters
Type Parameter | Default type |
---|---|
T | undefined |
E | any |
Parameters
Parameter | Type |
---|---|
this | void |
value ? | T |
Returns
Ok
<T
, E
>