forked from LeenkxTeam/LNXSDK
40 lines
781 B
Haxe
40 lines
781 B
Haxe
package eval.luv;
|
|
|
|
/**
|
|
Outcome of an operation.
|
|
**/
|
|
@:using(eval.luv.Result.ResultTools)
|
|
enum Result<T> {
|
|
/** Operation completed successfully. **/
|
|
Ok(value:T);
|
|
/** Operation failed. **/
|
|
Error(e:UVError);
|
|
}
|
|
|
|
enum abstract NoData(Dynamic) {
|
|
var NoData = null;
|
|
}
|
|
|
|
class ResultTools {
|
|
/**
|
|
Returns the result value on success or throws `eval.luv.LuvException`
|
|
on failure.
|
|
**/
|
|
static public inline function resolve<T>(result:Result<T>):T {
|
|
switch result {
|
|
case Ok(v): return v;
|
|
case Error(e): throw new LuvException(e);
|
|
}
|
|
}
|
|
|
|
/**
|
|
Returns `true` if the result is `Ok`.
|
|
Returns `false` if the result is `Error`.
|
|
**/
|
|
static public inline function isOk<T>(result:Result<T>):Bool {
|
|
return switch result {
|
|
case Ok(_): true;
|
|
case Error(_): false;
|
|
}
|
|
}
|
|
} |