Current section
Files
Jump to
Current section
Files
src/bigi_ffi.mjs
import { Ok, Error } from "./gleam.mjs";import { Lt, Eq, Gt } from "../gleam_stdlib/gleam/order.mjs";export function from(int) { return BigInt(int);}export function to(bigint) { if (bigint > Number.MAX_SAFE_INTEGER || bigint < Number.MIN_SAFE_INTEGER) { return new Error(undefined); } else { return new Ok(Number(bigint)); }}export function to_string(bigint) { return bigint.toString();}export function zero() { return 0n;}export function compare(a, b) { if (a < b) { return new Gt(); } else if (a > b) { return new Lt(); } else { return new Eq(); }}export function absolute(bigint) { if (bigint < 0) { return -bigint; } else { return bigint; }}export function add(a, b) { return a + b;}export function subtract(a, b) { return a - b;}export function multiply(a, b) { return a * b;}export function divide(a, b) { if (b === 0n) { return 0n; } return a / b;}export function divide_no_zero(a, b) { if (b === 0n) { return new Error(undefined); } return new Ok(divide(a, b));}export function remainder(a, b) { if (b === 0n) { return 0n; } return a % b;}export function remainder_no_zero(a, b) { if (b === 0n) { return new Error(undefined); } return new Ok(remainder(a, b));}export function modulo(a, b) { if (b === 0n) { return 0n; } return ((a % b) + b) % b;}export function modulo_no_zero(a, b) { if (b === 0n) { return new Error(undefined); } return new Ok(modulo(a, b));}export function power(a, b) { if (b < 0) { return new Error(undefined); } return new Ok(a ** b);}