Class: Some<T>
Type parameters
| Type parameter |
|---|
T |
Implements
IOption<T>
Constructors
new Some()
new Some<
T>(value:T):Some<T>
Parameters
| Parameter | Type |
|---|---|
value | T |
Returns
Some<T>
Source
projects/utilities/packages/result/src/lib/Option/Some.ts:12
Properties
value
privatereadonlyvalue:T
Source
projects/utilities/packages/result/src/lib/Option/Some.ts:10
Methods
[iterator]()
[iterator]():
Generator<T,any,unknown>
Returns an iterator over the possibly contained value.
The iterator yields one value if the result is Some, otherwise none.
Returns
Generator<T, any, unknown>
Implementation of
Examples
const x = some(7);
for (const value of x) {
console.log(value);
}
// Logs 7
const x = none;
for (const value of x) {
console.log(value);
}
// Doesn't log
See
Source
projects/utilities/packages/result/src/lib/Option/Some.ts:181
and()
and<
R>(option:R):R
Returns None if the option is None, otherwise returns option.
Type parameters
| Type parameter |
|---|
R extends Option<any> |
Parameters
| Parameter | Type | Description |
|---|---|---|
option | R | The option. |
Returns
R
Implementation of
Examples
const x: Option<number> = some(2);
const y: Option<string> = none;
assert.equal(x.and(y), none);
const x: Option<number> = none;
const y: Option<string> = some('foo');
assert.equal(x.and(y), none);
const x: Option<number> = some(2);
const y: Option<string> = some('foo');
assert.equal(x.and(y), some('foo'));
const x: Option<number> = none;
const y: Option<string> = none;
assert.equal(x.and(y), none);
See
https://doc.rust-lang.org/std/option/enum.Option.html#method.and
Source
projects/utilities/packages/result/src/lib/Option/Some.ts:92
andThen()
andThen<
R>(cb: (value:T) =>R):R
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 |
|---|
R extends Option<any> |
Parameters
| Parameter | Type | Description |
|---|---|---|
cb | (value: T) => R | The predicate. |
Returns
R
Implementation of
Example
function fractionOf4(value: number) {
return value === 0 ? none : some(4 / value);
}
assert.equal(some(2).andThen(fractionOf4), some(4));
assert.equal(some(0).andThen(fractionOf4), none);
assert.equal(none.andThen(fractionOf4), none);
See
https://doc.rust-lang.org/std/result/enum.Result.html#method.and_then
Source
projects/utilities/packages/result/src/lib/Option/Some.ts:96
contains()
contains(
value:T):boolean
Returns true if the option is a Some value containing the given value.
Parameters
| Parameter | Type | Description |
|---|---|---|
value | T | The value to compare. |
Returns
boolean
Implementation of
Examples
const x: Option<number> = some(2);
assert.equal(x.contains(2), true);
const x: Option<number> = some(3);
assert.equal(x.contains(2), false);
const x: Option<number> = none;
assert.equal(x.contains(2), false);
See
https://doc.rust-lang.org/std/option/enum.Option.html#method.contains
Source
projects/utilities/packages/result/src/lib/Option/Some.ts:124
eq()
eq(other)
eq(
other:None):false
Checks whether or not other equals with self.
Parameters
| Parameter | Type | Description |
|---|---|---|
other | None | The other option to compare. |
Returns
false
Implementation of
See
https://doc.rust-lang.org/std/cmp/trait.PartialEq.html#tymethod.eq
Source
projects/utilities/packages/result/src/lib/Option/Some.ts:165
eq(other)
eq(
other:Option<T>):boolean
Parameters
| Parameter | Type |
|---|---|
other | Option<T> |
Returns
boolean
Implementation of
IOption.eq
Source
projects/utilities/packages/result/src/lib/Option/Some.ts:166
expect()
expect(
message:string):T
Returns the contained Some value.
Parameters
| Parameter | Type | Description |
|---|---|---|
message | string | The message for the error. If the value is an Err, it throws an OptionError with the given message. |
Returns
T
Implementation of
Examples
const x: Option<string> = some(2);
assert.equal(x.expect('Whoops!'), 2);
const x: Option<string> = none;
assert.throws(() => x.expect('Whoops!'), {
name: 'OptionError',
message: 'Whoops'
});
See
https://doc.rust-lang.org/std/option/enum.Option.html#method.expect
Source
projects/utilities/packages/result/src/lib/Option/Some.ts:28
filter()
filter(predicate)
filter(
predicate: (value:T) =>true):this
Returns None if the option is None, otherwise calls predicate with the wrapped value and returns:
Some(t)ifpredicatereturnstrue(where t is the wrapped value), andNoneifpredicatereturnsfalse.
Parameters
| Parameter | Type | Description |
|---|---|---|
predicate | (value: T) => true | The predicate. |
Returns
this
Implementation of
Example
function isEven(value: number) {
return n % 2 === 0;
}
assert.equal(none.filter(isEven), none);
assert.equal(some(3).filter(isEven), none);
assert.equal(some(4).filter(isEven), some(4));
See
https://doc.rust-lang.org/std/option/enum.Option.html#method.filter
Source
projects/utilities/packages/result/src/lib/Option/Some.ts:117
filter(predicate)
filter(
predicate: (value:T) =>false):None
Parameters
| Parameter | Type |
|---|---|
predicate | (value: T) => false |
Returns
Implementation of
IOption.filter
Source
projects/utilities/packages/result/src/lib/Option/Some.ts:118
filter(predicate)
Parameters
| Parameter | Type |
|---|---|
predicate | (value: T) => boolean |
Returns
Implementation of
IOption.filter
Source
projects/utilities/packages/result/src/lib/Option/Some.ts:119
flatten()
flatten<
Inner>(this:Some<Inner>):Inner
Converts from Result<Result<T, E>, E> to Result<T, E>.
Type parameters
| Type parameter |
|---|
Inner extends Option<any> |
Parameters
| Parameter | Type |
|---|---|
this | Some<Inner> |
Returns
Inner
Implementation of
Examples
const x: Option<Option<number>> = some(some(6));
assert.equal(x.flatten(), some(6));
const x: Option<Option<number>> = some(none);
assert.equal(x.flatten(), none);
const x: Option<Option<number>> = none;
assert.equal(x.flatten(), none);
See
https://doc.rust-lang.org/std/result/enum.Result.html#method.flatten
Source
projects/utilities/packages/result/src/lib/Option/Some.ts:157
inspect()
inspect(
cb: (value:T) =>void):this
Calls the provided closure with a reference to the contained value (if Some).
Parameters
| Parameter | Type | Description |
|---|---|---|
cb | (value: T) => void | The predicate. |
Returns
this
Implementation of
Seealso
inspectAsync for the awaitable version.
Examples
some(2).inspect(console.log);
// Logs: 2
none.inspect(console.log);
// Doesn't log
See
https://doc.rust-lang.org/std/option/enum.Option.html#method.inspect
Source
projects/utilities/packages/result/src/lib/Option/Some.ts:68
inspectAsync()
Calls the provided closure with a reference to the contained value (if Some).
Parameters
| Parameter | Type | Description |
|---|---|---|
cb | (value: T) => unknown | The predicate. |
Returns
Implementation of
Seealso
inspect for the sync version.
Examples
await some(2).inspectAsync(console.log);
// Logs: 2
await none.inspectAsync(console.log);
// Doesn't log
Note
This is an extension not supported in Rust
Source
projects/utilities/packages/result/src/lib/Option/Some.ts:73
intoPromise()
Returns a Promise object with the awaited value (if Some).
Returns
Implementation of
Example
let x = some(Promise.resolve(3));
assert.equal(await x.intoPromise(), some(3));
Note
This is an extension not supported in Rust
Source
projects/utilities/packages/result/src/lib/Option/Some.ts:161
isNone()
isNone():
false
Returns true if the option is a None value.
Returns
false
Implementation of
Examples
const x: Option<number> = some(2);
assert.equal(x.isNone(), false);
const x: Option<number> = none;
assert.equal(x.isNone(), true);
See
https://doc.rust-lang.org/std/option/enum.Option.html#method.is_none
Source
projects/utilities/packages/result/src/lib/Option/Some.ts:24
isSome()
isSome():
this is Some<T>
Returns true if the option is a Some value.
Returns
this is Some<T>
Implementation of
Examples
const x: Option<number> = some(2);
assert.equal(x.isSome(), true);
const x: Option<number> = none;
assert.equal(x.isSome(), false);
See
https://doc.rust-lang.org/std/option/enum.Option.html#method.is_some
Source
projects/utilities/packages/result/src/lib/Option/Some.ts:16
isSomeAnd()
isSomeAnd<
R>(cb: (value:T) =>R):R
Returns true if the option is a Some and the value inside of it matches a predicate.
Type parameters
| Type parameter |
|---|
R extends boolean |
Parameters
| Parameter | Type | Description |
|---|---|---|
cb | (value: T) => R | The predicate. |
Returns
R
Implementation of
Examples
const x: Option<number> = some(2);
assert.equal(x.isSomeAnd((x) => x > 1), true);
const x: Option<number> = some(0);
assert.equal(x.isSomeAnd((x) => x > 1), false);
const x: Option<number> = none;
assert.equal(x.isSomeAnd((x) => x > 1), false);
See
https://doc.rust-lang.org/std/option/enum.Option.html#method.is_some_and
Source
projects/utilities/packages/result/src/lib/Option/Some.ts:20
iter()
iter():
Generator<T,any,unknown>
Returns an iterator over the possibly contained value.
The iterator yields one value if the result is Some, otherwise none.
Returns
Generator<T, any, unknown>
Implementation of
Examples
const x = some(7);
for (const value of x) {
console.log(value);
}
// Logs 7
const x = none;
for (const value of x) {
console.log(value);
}
// Doesn't log
See
Source
projects/utilities/packages/result/src/lib/Option/Some.ts:88
map()
map<
U>(cb: (value:T) =>U):Some<U>
Maps an Option<T> to Option<U> by applying a function to a contained value.
Type parameters
| Type parameter |
|---|
U |
Parameters
| Parameter | Type | Description |
|---|---|---|
cb | (value: T) => U | The predicate. |
Returns
Some<U>
Implementation of
Example
const maybeSomeString = some('Hello, world!');
const maybeSomeLength = maybeSomeString.map((value) => value.length);
assert.equal(maybeSomeLength, some(13));
See
https://doc.rust-lang.org/std/option/enum.Option.html#method.map
Source
projects/utilities/packages/result/src/lib/Option/Some.ts:47
mapInto()
mapInto<
R>(cb: (value:T) =>R):R
Maps a Some<T> to the returned Option<U> by applying a function to a contained value, leaving None
untouched.
Type parameters
| Type parameter |
|---|
R extends Option<any> |
Parameters
| Parameter | Type | Description |
|---|---|---|
cb | (value: T) => R | The predicate. |
Returns
R
Implementation of
Examples
const input: Option<string> = some('Hello, world!');
const result = input.mapInto((value) => some(value.length));
assert.equal(result, some(13));
const input: Option<string> = none;
const result = input.mapInto((value) => some(value.length));
assert.equal(result, none);
Note
This is an extension not supported in Rust
Source
projects/utilities/packages/result/src/lib/Option/Some.ts:51
mapNoneInto()
mapNoneInto(
cb: () =>Option<any>):this
Maps a None to the returned Option<U> by applying a function to a contained value, leaving Some<T>
untouched.
Parameters
| Parameter | Type | Description |
|---|---|---|
cb | () => Option<any> | The predicate. |
Returns
this
Implementation of
Examples
const input: Option<string> = some('Hello, world!');
const result = input.mapNoneInto(() => some(13));
assert.equal(result, some('Hello, world!'));
const input: Option<string> = none;
const result = input.mapNoneInto(() => some(13));
assert.equal(result, some(13));
Note
This is an extension not supported in Rust
Source
projects/utilities/packages/result/src/lib/Option/Some.ts:63
mapOr()
mapOr<
U>(_:U,cb: (value:T) =>U):U
Returns the provided default result (if none), or applies a function to the contained value (if any).
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 |
|---|
U |
Parameters
| Parameter | Type | Description |
|---|---|---|
_ | U | The default value. |
cb | (value: T) => U | The predicate. |
Returns
U
Implementation of
Examples
const x: Option<string> = some('hello');
assert.equal(x.mapOr(42, (value) => value.length), 5);
const x: Option<string> = none;
assert.equal(x.mapOr(42, (value) => value.length), 42);
See
https://doc.rust-lang.org/std/option/enum.Option.html#method.map_or
Source
projects/utilities/packages/result/src/lib/Option/Some.ts:55
mapOrElse()
mapOrElse<
U>(_: () =>U,cb: (value:T) =>U):U
Computes a default function result (if none), or applies a different function to the contained value (if any).
Type parameters
| Type parameter |
|---|
U |
Parameters
| Parameter | Type | Description |
|---|---|---|
_ | () => U | The default value. |
cb | (value: T) => U | The predicate. |
Returns
U
Implementation of
Examples
const x: Option<string> = some('hello');
assert.equal(x.mapOrElse(() => 42, (value) => value.length), 5);
const x: Option<string> = none;
assert.equal(x.mapOrElse(() => 42, (value) => value.length), 42);
See
https://doc.rust-lang.org/std/option/enum.Option.html#method.map_or_else
Source
projects/utilities/packages/result/src/lib/Option/Some.ts:59
match()
match<
SomeValue,NoneValue>(branches:object):SomeValue
Runs ok function if self is Ok, otherwise runs err function.
Type parameters
| Type parameter |
|---|
SomeValue |
NoneValue |
Parameters
| Parameter | Type | Description |
|---|---|---|
branches | object | The branches to match. |
branches.none | - | |
branches.some | - |
Returns
SomeValue
Implementation of
Examples
const option = some(4).match({
some: (v) => v,
none: () => 0
});
assert.equal(option, 4);
const option = none.match({
some: (v) => v,
none: () => 0
});
assert.equal(option, 0);
Source
projects/utilities/packages/result/src/lib/Option/Some.ts:177
ne()
ne(other)
ne(
other:None):true
Checks whether or not other doesn't equal with self.
Parameters
| Parameter | Type | Description |
|---|---|---|
other | None | The other option to compare. |
Returns
true
Implementation of
See
https://doc.rust-lang.org/std/cmp/trait.PartialEq.html#method.ne
Source
projects/utilities/packages/result/src/lib/Option/Some.ts:171
ne(other)
ne(
other:Option<T>):boolean
Parameters
| Parameter | Type |
|---|---|
other | Option<T> |
Returns
boolean
Implementation of
IOption.ne
Source
projects/utilities/packages/result/src/lib/Option/Some.ts:172
okOr()
okOr(
err?:any):Ok<T>
Transforms the Option<T> into a Result<T, E>, mapping Some(v) to Ok(v) and None to Err(err).
Arguments passed to okOr are eagerly evaluated; if you are passing the result of a function call, it is
recommended to use okOrElse, which is lazily evaluated.
Parameters
| Parameter | Type | Description |
|---|---|---|
err? | any | The error to be used. |
Returns
Ok<T>
Implementation of
Examples
const x: Option<string> = some('hello');
assert.equal(x.okOr(0), ok('hello'));
const x: Option<string> = none;
assert.equal(x.okOr(0), err(0));
See
https://doc.rust-lang.org/std/option/enum.Option.html#method.ok_or
Source
projects/utilities/packages/result/src/lib/Option/Some.ts:78
okOrElse()
okOrElse(
cb: () =>any):Ok<T>
Transforms the Option<T> into a Result<T, E>, mapping Some(v) to Ok(v) and None to Err(err()).
Parameters
| Parameter | Type | Description |
|---|---|---|
cb | () => any | The error to be used. |
Returns
Ok<T>
Implementation of
Examples
const x: Option<string> = some('hello');
assert.equal(x.okOrElse(() => 0), ok('hello'));
const x: Option<string> = none;
assert.equal(x.okOrElse(() => 0), err(0));
See
https://doc.rust-lang.org/std/option/enum.Option.html#method.ok_or_else
Source
projects/utilities/packages/result/src/lib/Option/Some.ts:83
or()
or(
option:Option<any>):this
Returns the option if it contains a value, otherwise returns option.
Parameters
| Parameter | Type | Description |
|---|---|---|
option | Option<any> | The option. |
Returns
this
Implementation of
Examples
const x: Option<number> = some(2);
const y: Option<number> = none;
assert.equal(x.or(y), some(2));
const x: Option<number> = none;
const y: Option<number> = some(100);
assert.equal(x.or(y), some(100));
const x: Option<number> = some(2);
const y: Option<number> = some(100);
assert.equal(x.or(y), some(2));
const x: Option<number> = none;
const y: Option<number> = none;
assert.equal(x.or(y), none);
See
https://doc.rust-lang.org/std/option/enum.Option.html#method.or
Source
projects/utilities/packages/result/src/lib/Option/Some.ts:100
orElse()
orElse(
cb?: () =>Option<any>):this
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.
Parameters
| Parameter | Type | Description |
|---|---|---|
cb? | () => Option<any> | The predicate. |
Returns
this
Implementation of
Example
const nobody = (): Option<string> => none;
const vikings = (): Option<string> => some('vikings');
assert.equal(some('barbarians').orElse(vikings), some('barbarians'));
assert.equal(none.orElse(vikings), some('vikings'));
assert.equal(none.orElse(nobody), none);
See
https://doc.rust-lang.org/std/option/enum.Option.html#method.or_else
Source
projects/utilities/packages/result/src/lib/Option/Some.ts:105
transpose()
transpose(this)
Transposes an Option of a Result into a Result of an Option.
none will be mapped to ok(none). some(ok(v)) and some(err(e)) will be mapped to ok(some(v)) and err(e).
Type parameters
| Type parameter |
|---|
Inner |
Parameters
| Parameter | Type |
|---|---|
this | Some <Ok<Inner>> |
Returns
Implementation of
Example
const x: Option<Result<number, Error>> = some(ok(5));
const y: Result<Option<number>, Error> = ok(some(5));
assert.equal(x.transpose(), y);
See
https://doc.rust-lang.org/std/option/enum.Option.html#method.transpose
Source
projects/utilities/packages/result/src/lib/Option/Some.ts:147
transpose(this)
transpose<
Inner>(this:Some<Err<Inner>>):Err<Some<Inner>>