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) } }