import { bench, describe } from 'vitest'; import { STANDARD } from '../helpers/bench-options.js'; import { ok, err, ntOk, ntErr, TsOk, TsErr, OxOk, OxErr, E, TmResult, } from '../helpers/imports.js'; // --------------------------------------------------------------------------- // isOk — on Ok variant // --------------------------------------------------------------------------- describe('Result.isOk — on Ok', () => { const nm = ok(42); const nt = ntOk(42); const ts = TsOk(42); const ox = OxOk(42); const fp = E.right(42); const tm = TmResult.ok(42); bench('native-monad', () => { nm.isOk(); }, STANDARD); bench('neverthrow', () => { nt.isOk(); }, STANDARD); bench('ts-results-es', () => { ts.isOk(); }, STANDARD); bench('oxide.ts', () => { ox.isOk(); }, STANDARD); bench('fp-ts', () => { E.isRight(fp); }, STANDARD); bench('true-myth', () => { tm.isOk; }, STANDARD); }); // --------------------------------------------------------------------------- // isOk — on Err variant // --------------------------------------------------------------------------- describe('Result.isOk — on Err', () => { const nm = err('fail'); const nt = ntErr('fail'); const ts = TsErr('fail'); const ox = OxErr('fail'); const fp = E.left('fail'); const tm = TmResult.err('fail'); bench('native-monad', () => { nm.isOk(); }, STANDARD); bench('neverthrow', () => { nt.isOk(); }, STANDARD); bench('ts-results-es', () => { ts.isOk(); }, STANDARD); bench('oxide.ts', () => { ox.isOk(); }, STANDARD); bench('fp-ts', () => { E.isRight(fp); }, STANDARD); bench('true-myth', () => { tm.isOk; }, STANDARD); }); // --------------------------------------------------------------------------- // isErr — on Err variant // --------------------------------------------------------------------------- describe('Result.isErr — on Err', () => { const nm = err('fail'); const nt = ntErr('fail'); const ts = TsErr('fail'); const ox = OxErr('fail'); const fp = E.left('fail'); const tm = TmResult.err('fail'); bench('native-monad', () => { nm.isErr(); }, STANDARD); bench('neverthrow', () => { nt.isErr(); }, STANDARD); bench('ts-results-es', () => { ts.isErr(); }, STANDARD); bench('oxide.ts', () => { ox.isErr(); }, STANDARD); bench('fp-ts', () => { E.isLeft(fp); }, STANDARD); bench('true-myth', () => { tm.isErr; }, STANDARD); });