Files
SpotMicroESP32-Leika/app/src/lib/utilities/result/err.ts
T
Rune Harlyk 22b54261f0 📏 Formats app code
2024-02-23 09:16:20 +01:00

43 lines
683 B
TypeScript

export class Err<T, U> {
#inner: T;
#exception?: U;
constructor(inner: T, exception?: U) {
this.#inner = inner;
this.#exception = exception;
}
get inner(): T {
return this.#inner;
}
get exception(): U | undefined {
return this.#exception;
}
/**
* Type guard for `Ok`
* @returns `true` if `Ok`; `false` if `Err`
*/
isOk(): false {
return false;
}
/**
* Type guard for `Err`
* @returns `true` if `Err`; `false` if `Ok`
*/
isErr(): this is Err<T, U> {
return true;
}
/**
* Create an `Err`
* @param inner
* @returns `Err(inner)`
*/
static new<E, F>(inner: E, exception: F): Err<E, F> {
return new Err<E, F>(inner, exception);
}
}