export class Ok { #inner: T; constructor(inner: T) { this.#inner = inner; } get inner(): T { return this.#inner; } /** * Type guard for `Ok` * @returns `true` if `Ok`; `false` if `Err` */ isOk(): this is Ok { return true; } /** * Type guard for `Err` * @returns `true` if `Err`; `false` if `Ok` */ isErr(): false { return false; } /** * Create an `Ok` * @param inner * @returns `Ok(inner)` */ static new(inner: T): Ok { return new Ok(inner); } /** * Create an empty `Ok` * @returns `Ok(void)` */ static void(): Ok { return new Ok(undefined); } }