Sync<T extends Object> class final

A Outcome that represents a Resolvable that holds a synchronous Result.

The contained value is never a Future.

IMPORTANT:

Do not use any Futures in the constructor Sync.new to ensure errors are properly caught and propagated.

Inheritance
Implemented types
Available extensions

Constructors

Sync.new(@mustBeAnonymous @noFutures T noFutures(), {@noFutures TOnErrorCallback<T>? onError, @noFutures TVoidCallback? onFinalize})
Creates a Sync executing a synchronous function noFutures.
factory
Sync.err(Err<T> err)
Sync.errValue(Object error, {int? statusCode})
Sync.ok(Ok<T> ok)
Sync.okValue(T okValue)
Sync.result(Result<T> value)

Properties

hashCode int
The hash code for this object.
no setterinherited
props List<Object?>
The list of properties that will be used to determine whether two instances are equal.
no setterinherited
runtimeType Type
A representation of the runtime type of the object.
no setterinherited
stringify bool?
If set to true, the toString method will be overridden to output this instance's props.
no setterinherited
value Result<T>
no setteroverride

Methods

asResolvable() Resolvable<T>
Returns this as a base Resolvable type.
inherited
async() Err<Async<T>>
Safely gets the Async instance. Returns an Ok on Async, or an Err on Sync.
override
asyncOr(Resolvable<T> other) Resolvable<T>
Returns this if it's Async, otherwise returns other.
override
end() → void
Suppresses the linter error must_use_outcome.
override
err() Option<Err<T>>
Safely gets the Err instance, resolving any Future.
override
errOr(Resolvable<T> other) Resolvable<T>
Returns this if it contains an Err, otherwise returns other.
override
flatten() Resolvable<T>

Available on Resolvable<Result<T>>, provided by the FlattenResolvableResultExt2 extension

flatten() Resolvable<T>

Available on Resolvable<Result<Result<Result<Result<Result<T>>>>>>, provided by the FlattenResolvableResulteExt6 extension

flatten() Resolvable<T>

Available on Resolvable<Result<Result<Result<Result<Result<Result<Result<Result<T>>>>>>>>>, provided by the FlattenResolvableResulteExt9 extension

flatten() Resolvable<T>

Available on Resolvable<Result<Result<Result<Result<Result<Result<Result<T>>>>>>>>, provided by the FlattenResolvableResulteExt8 extension

flatten() Resolvable<T>

Available on Resolvable<Result<Result<Result<Result<Result<Result<T>>>>>>>, provided by the FlattenResolvableResulteExt7 extension

flatten() Resolvable<T>

Available on Resolvable<Result<Result<Result<Result<T>>>>>, provided by the FlattenResolvableResulteExt5 extension

flatten() Resolvable<T>

Available on Resolvable<Result<Result<Result<T>>>>, provided by the FlattenResolvableResulteExt4 extension

flatten() Sync<T>

Available on Sync<Sync<Sync<Sync<Sync<Sync<Sync<Sync<Sync<T>>>>>>>>>, provided by the FlattenSyncExt9 extension

flatten() Resolvable<T>

Available on Resolvable<Resolvable<Resolvable<T>>>, provided by the FlattenResolvableExt3 extension

flatten() Resolvable<T>

Available on Resolvable<Result<Result<T>>>, provided by the FlattenResolvableResulteExt3 extension

flatten() Sync<T>

Available on Sync<Sync<Sync<Sync<Sync<Sync<Sync<Sync<T>>>>>>>>, provided by the FlattenSyncExt8 extension

flatten() Resolvable<T>

Available on Resolvable<Resolvable<Resolvable<Resolvable<Resolvable<Resolvable<Resolvable<Resolvable<Resolvable<T>>>>>>>>>, provided by the FlattenResolvableExt9 extension

flatten() Resolvable<T>

Available on Resolvable<Resolvable<Resolvable<Resolvable<Resolvable<Resolvable<T>>>>>>, provided by the FlattenResolvableExt6 extension

flatten() Sync<T>

Available on Sync<Sync<Sync<Sync<Sync<Sync<Sync<T>>>>>>>, provided by the FlattenSyncExt7 extension

flatten() Sync<T>

Available on Sync<Sync<T>>, provided by the FlattenSyncExt2 extension

flatten() Sync<T>

Available on Sync<Sync<Sync<Sync<Sync<Sync<T>>>>>>, provided by the FlattenSyncExt6 extension

flatten() Resolvable<T>

Available on Resolvable<Resolvable<Resolvable<Resolvable<Resolvable<Resolvable<Resolvable<T>>>>>>>, provided by the FlattenResolvableExt7 extension

flatten() Sync<T>

Available on Sync<Sync<Sync<Sync<Sync<T>>>>>, provided by the FlattenSyncExt5 extension

flatten() Sync<T>

Available on Sync<Sync<Sync<Sync<T>>>>, provided by the FlattenSyncExt4 extension

flatten() Sync<T>

Available on Sync<Sync<Sync<T>>>, provided by the FlattenSyncExt3 extension

flatten() Resolvable<T>

Available on Resolvable<Resolvable<Resolvable<Resolvable<Resolvable<T>>>>>, provided by the FlattenResolvableExt5 extension

flatten() Resolvable<T>

Available on Resolvable<Resolvable<T>>, provided by the FlattenResolvableExt2 extension

flatten() Resolvable<T>

Available on Resolvable<Resolvable<Resolvable<Resolvable<Resolvable<Resolvable<Resolvable<Resolvable<T>>>>>>>>, provided by the FlattenResolvableExt8 extension

flatten() Resolvable<T>

Available on Resolvable<Resolvable<Resolvable<Resolvable<T>>>>, provided by the FlattenResolvableExt4 extension

flatten2() Resolvable<T>

Available on Resolvable<Result<T>>, provided by the FlattenResolvableResultExt2 extension

flatten2() Sync<T>

Available on Sync<Sync<T>>, provided by the FlattenSyncExt2 extension

flatten2() Resolvable<T>

Available on Resolvable<Resolvable<T>>, provided by the FlattenResolvableExt2 extension

flatten3() Resolvable<T>

Available on Resolvable<Result<Result<T>>>, provided by the FlattenResolvableResulteExt3 extension

flatten3() Sync<T>

Available on Sync<Sync<Sync<T>>>, provided by the FlattenSyncExt3 extension

flatten3() Resolvable<T>

Available on Resolvable<Resolvable<Resolvable<T>>>, provided by the FlattenResolvableExt3 extension

flatten4() Resolvable<T>

Available on Resolvable<Result<Result<Result<T>>>>, provided by the FlattenResolvableResulteExt4 extension

flatten4() Sync<T>

Available on Sync<Sync<Sync<Sync<T>>>>, provided by the FlattenSyncExt4 extension

flatten4() Resolvable<T>

Available on Resolvable<Resolvable<Resolvable<Resolvable<T>>>>, provided by the FlattenResolvableExt4 extension

flatten5() Resolvable<T>

Available on Resolvable<Result<Result<Result<Result<T>>>>>, provided by the FlattenResolvableResulteExt5 extension

flatten5() Resolvable<T>

Available on Resolvable<Resolvable<Resolvable<Resolvable<Resolvable<T>>>>>, provided by the FlattenResolvableExt5 extension

flatten5() Sync<T>

Available on Sync<Sync<Sync<Sync<Sync<T>>>>>, provided by the FlattenSyncExt5 extension

flatten6() Resolvable<T>

Available on Resolvable<Resolvable<Resolvable<Resolvable<Resolvable<Resolvable<T>>>>>>, provided by the FlattenResolvableExt6 extension

flatten6() Sync<T>

Available on Sync<Sync<Sync<Sync<Sync<Sync<T>>>>>>, provided by the FlattenSyncExt6 extension

flatten6() Resolvable<T>

Available on Resolvable<Result<Result<Result<Result<Result<T>>>>>>, provided by the FlattenResolvableResulteExt6 extension

flatten7() Resolvable<T>

Available on Resolvable<Resolvable<Resolvable<Resolvable<Resolvable<Resolvable<Resolvable<T>>>>>>>, provided by the FlattenResolvableExt7 extension

flatten7() Sync<T>

Available on Sync<Sync<Sync<Sync<Sync<Sync<Sync<T>>>>>>>, provided by the FlattenSyncExt7 extension

flatten7() Resolvable<T>

Available on Resolvable<Result<Result<Result<Result<Result<Result<T>>>>>>>, provided by the FlattenResolvableResulteExt7 extension

flatten8() Resolvable<T>

Available on Resolvable<Resolvable<Resolvable<Resolvable<Resolvable<Resolvable<Resolvable<Resolvable<T>>>>>>>>, provided by the FlattenResolvableExt8 extension

flatten8() Sync<T>

Available on Sync<Sync<Sync<Sync<Sync<Sync<Sync<Sync<T>>>>>>>>, provided by the FlattenSyncExt8 extension

flatten8() Resolvable<T>

Available on Resolvable<Result<Result<Result<Result<Result<Result<Result<T>>>>>>>>, provided by the FlattenResolvableResulteExt8 extension

flatten9() Resolvable<T>

Available on Resolvable<Resolvable<Resolvable<Resolvable<Resolvable<Resolvable<Resolvable<Resolvable<Resolvable<T>>>>>>>>>, provided by the FlattenResolvableExt9 extension

flatten9() Sync<T>

Available on Sync<Sync<Sync<Sync<Sync<Sync<Sync<Sync<Sync<T>>>>>>>>>, provided by the FlattenSyncExt9 extension

flatten9() Resolvable<T>

Available on Resolvable<Result<Result<Result<Result<Result<Result<Result<Result<T>>>>>>>>>, provided by the FlattenResolvableResulteExt9 extension

fold(Resolvable<Object>? onSync(Sync<T> sync), Resolvable<Object>? onAsync(Async<T> async)) Resolvable<Object>
Handles Sync and Async cases to produce a new Resolvable.
override
foldResult(Result<Object>? onOk(Ok<T> ok), Result<Object>? onErr(Err<T> err)) Sync<Object>
Exhaustively handles the inner Ok and Err cases, returning a new Resolvable.
override
ifAsync(void noFutures(Sync<T> self, Async<T> async)) Sync<T>
Performs a side-effect if this is Async.
override
ifErr(void noFutures(Sync<T> self, Err<T> err)) Resolvable<T>
Performs a side-effect if this is Err.
override
ifOk(void noFutures(Sync<T> self, Ok<T> ok)) Resolvable<T>
Performs a side-effect if this is Ok.
override
ifSync(void noFutures(Sync<T> self, Sync<T> sync)) Sync<T>
Performs a side-effect if this is Sync.
override
isAsync() bool
Returns true if this is an Async instance.
override
isSync() bool
Returns true if this is a Sync instance.
override
map<R extends Object>(R noFutures(T value)) Sync<R>
Prefer using then for Resolvable.
override
map10<R extends Object>(R mapper(T)) TResolvableOption<Object>

Available on Outcome<Outcome<Outcome<Outcome<Outcome<Outcome<Outcome<Outcome<Outcome<Outcome<Object>>>>>>>>>>, provided by the MapOutcomeExt10 extension

map2<R extends Object>(R mapper(T)) TResolvableOption<Object>

Available on Outcome<Outcome<Object>>, provided by the MapOutcomeExt2 extension

map3<R extends Object>(R mapper(T)) TResolvableOption<Object>

Available on Outcome<Outcome<Outcome<Object>>>, provided by the MapOutcomeExt3 extension

map4<R extends Object>(R mapper(T)) TResolvableOption<Object>

Available on Outcome<Outcome<Outcome<Outcome<Object>>>>, provided by the MapOutcomeExt4 extension

map5<R extends Object>(R mapper(T)) TResolvableOption<Object>

Available on Outcome<Outcome<Outcome<Outcome<Outcome<Object>>>>>, provided by the MapOutcomeExt5 extension

map6<R extends Object>(R mapper(T)) TResolvableOption<Object>

Available on Outcome<Outcome<Outcome<Outcome<Outcome<Outcome<Object>>>>>>, provided by the MapOutcomeExt6 extension

map7<R extends Object>(R mapper(T)) TResolvableOption<Object>

Available on Outcome<Outcome<Outcome<Outcome<Outcome<Outcome<Outcome<Object>>>>>>>, provided by the MapOutcomeExt7 extension

map8<R extends Object>(R mapper(T)) TResolvableOption<Object>

Available on Outcome<Outcome<Outcome<Outcome<Outcome<Outcome<Outcome<Outcome<Object>>>>>>>>, provided by the MapOutcomeExt8 extension

map9<R extends Object>(R mapper(T)) TResolvableOption<Object>

Available on Outcome<Outcome<Outcome<Outcome<Outcome<Outcome<Outcome<Outcome<Outcome<Object>>>>>>>>>, provided by the MapOutcomeExt9 extension

mapFutureOr<R extends Object>(FutureOr<R> mapper(T value)) Resolvable<R>
Maps the contained Ok value using a function that returns a FutureOr.
override
noSuchMethod(Invocation invocation) → dynamic
Invoked when a nonexistent method or property is accessed.
inherited
ok() Option<Ok<T>>
Safely gets the Ok instance, resolving any Future.
override
okOr(Resolvable<T> other) Resolvable<T>
Returns this if it contains an Ok, otherwise returns other.
override
orNull() Future<T?>
Returns the contained Ok value or null, resolving any Future.
override
raw({required FutureOr<Object> onErr(Err<Object> err), required FutureOr<Object> onNone()}) FutureOr<Object>
The low-level primitive for reducing a Outcome chain. It recursively unwraps all Outcome layers to return the innermost raw value, forcing the caller to handle terminal states via callbacks.
inherited
rawAsync() Async<Object>
Reduces any Outcome chain to a single Async.
inherited
rawSync() Sync<Object>
Safely reduces any Outcome chain to a single Sync.
inherited
reduce<R extends Object>() TResolvableOption<R>
Reduces any nested Outcome structure into a single TResolvableOption.
inherited
resultMap<R extends Object>(Result<R> noFutures(Result<T> value)) Sync<R>
Maps the inner Result of this Resolvable using mapper.
override
swap() Ok<Sync<T>>

Available on Sync<Ok<T>>, provided by the SwapSyncOkExt extension

swap() None<Resolvable<T>>

Available on Resolvable<None<T>>, provided by the SwapResolvableNoneExt extension

swap() Ok<Resolvable<T>>

Available on Resolvable<Ok<T>>, provided by the SwapResolvableOkExt extension

swap() Some<Resolvable<T>>

Available on Resolvable<Some<T>>, provided by the SwapResolvableSomeExt extension

swap() Async<Sync<T>>

Available on Sync<Async<T>>, provided by the SwapSyncAsyncExt extension

swap() Err<Sync<T>>

Available on Sync<Err<T>>, provided by the SwapSyncErrExt extension

swap() None<Sync<T>>

Available on Sync<None<T>>, provided by the SwapSyncNoneExt extension

swap() Option<Sync<T>>

Available on Sync<Option<T>>, provided by the SwapSyncOptionExt extension

swap() Resolvable<Sync<T>>

Available on Sync<Resolvable<T>>, provided by the SwapSyncResolvableExt extension

swap() Result<Sync<T>>

Available on Sync<Result<T>>, provided by the SwapSyncResultExt extension

swap() Some<Sync<T>>

Available on Sync<Some<T>>, provided by the SwapSyncSomeExt extension

sync() Ok<Sync<T>>
Safely gets the Sync instance. Returns an Ok on Sync, or an Err on Async.
override
syncOr(Resolvable<T> other) Sync<T>
Returns this if it's Sync, otherwise returns other.
override
then<R extends Object>(R noFutures(T value)) Sync<R>
Prefer using map for Sync.
override
toAsync() Async<T>
Converts this Resolvable to an Async.
override
toString() String
A string representation of this object.
inherited
toUnit() Sync<Unit>

Available on Sync<Object>, provided by the ToUnitOnObjectSync extension

toUnit() Resolvable<Unit>

Available on Resolvable<Object>, provided by the ToUnitOnObjectResolvable extension

toUnit() Outcome<Unit>

Available on Outcome<Object>, provided by the ToUnitOnObjectOutcome extension

toVoid() Outcome<void>

Available on Outcome<T>, provided by the ToVoidOnOutcomeExt extension

toVoid() Sync<void>

Available on Sync<T>, provided by the ToVoidOnSyncExt extension

toVoid() Resolvable<void>

Available on Resolvable<T>, provided by the ToVoidOnResolvableExt extension

transf<R extends Object>([R noFutures(T e)?]) Sync<R>
Transforms the Outcome's generic type from T to R.
override
unwrap() → T
Strongly discouraged: Unsafely returns the contained value.
override
unwrapAsync() Future<T>

Available on Resolvable<Option<T>>, provided by the ResolvableOptionExt extension

unwrapOr(T fallback) → T
Returns the contained value, or the fallback if the Outcome is in an Err or None state.
override
unwrapSync() → T

Available on Resolvable<Option<T>>, provided by the ResolvableOptionExt extension

unwrapSync() → T

Available on Sync<Option<T>>, provided by the SyncOptionExt extension

whenComplete<R extends Object>(Resolvable<R> noFutures(Sync<T> resolved)) Resolvable<R>
override
withMinDuration(Duration? duration) Resolvable<T>
Ensures that resolving this value takes at least a specified duration. If duration is null, this method returns the original value immediately.
inherited
wrapInAsync() Async<M>

Available on M, provided by the WrapOnOutcomeExt extension

wrapInOk() Ok<M>

Available on M, provided by the WrapOnOutcomeExt extension

wrapInResolvable() Resolvable<M>

Available on M, provided by the WrapOnOutcomeExt extension

wrapInSome() Some<M>

Available on M, provided by the WrapOnOutcomeExt extension

wrapInSync() Sync<M>

Available on M, provided by the WrapOnOutcomeExt extension

wrapValueInAsync() Sync<Async<T>>

Available on Sync<T>, provided by the WrapOnSyncExt extension

wrapValueInAsync() Outcome<Async<T>>

Available on M, provided by the WrapOnOutcomeExt extension

wrapValueInAsync() Resolvable<Async<T>>

Available on Resolvable<T>, provided by the WrapOnResolvableExt extension

wrapValueInOk() Outcome<Ok<T>>

Available on M, provided by the WrapOnOutcomeExt extension

wrapValueInOk() Resolvable<Ok<T>>

Available on Resolvable<T>, provided by the WrapOnResolvableExt extension

wrapValueInOk() Sync<Ok<T>>

Available on Sync<T>, provided by the WrapOnSyncExt extension

wrapValueInResolvable() Outcome<Resolvable<T>>

Available on M, provided by the WrapOnOutcomeExt extension

wrapValueInResolvable() Resolvable<Resolvable<T>>

Available on Resolvable<T>, provided by the WrapOnResolvableExt extension

wrapValueInResolvable() Sync<Resolvable<T>>

Available on Sync<T>, provided by the WrapOnSyncExt extension

wrapValueInSome() Outcome<Some<T>>

Available on M, provided by the WrapOnOutcomeExt extension

wrapValueInSome() Resolvable<Some<T>>

Available on Resolvable<T>, provided by the WrapOnResolvableExt extension

wrapValueInSome() Sync<Some<T>>

Available on Sync<T>, provided by the WrapOnSyncExt extension

wrapValueInSync() Outcome<Sync<T>>

Available on M, provided by the WrapOnOutcomeExt extension

wrapValueInSync() Resolvable<Sync<T>>

Available on Resolvable<T>, provided by the WrapOnResolvableExt extension

wrapValueInSync() Sync<Sync<T>>

Available on Sync<T>, provided by the WrapOnSyncExt extension

Operators

operator ==(Object other) bool
The equality operator.
inherited

Static Methods

combine2<T1 extends Object, T2 extends Object>(Sync<T1> s1, Sync<T2> s2, [Err<(T1, T2)> onErr(Result<T1>, Result<T2>)?]) Sync<(T1, T2)>
Combines 2 Sync outcomes into 1 containing a tuple of their values if all resolve to Ok.
override
combine3<T1 extends Object, T2 extends Object, T3 extends Object>(Sync<T1> s1, Sync<T2> s2, Sync<T3> s3, [Err<(T1, T2, T3)> onErr(Result<T1>, Result<T2>, Result<T3>)?]) Sync<(T1, T2, T3)>
Combines 3 Sync outcomes into 1 containing a tuple of their values if all resolve to Ok.
override