/** @module
Small deterministic arithmetic helpers: round, add, subtract, multiply,
and a divide that returns a Result so you can handle division by zero.
*/
import { _round } from "agency-lang/stdlib-lib/builtins.js"

export def round(num: number, precision: number): number {
  """
  Round a number to a given number of decimal places.

  @param num - The number to round
  @param precision - The number of decimal places
  """
  return _round(num, precision)
}

export def add(a: number, b: number): number {
  """Add two numbers."""
  return a + b
}

export def subtract(a: number, b: number): number {
  """Subtract b from a."""
  return a - b
}

export def multiply(a: number, b: number): number {
  """Multiply two numbers."""
  return a * b
}

export def divide(a: number, b: number): Result<number> {
  """Divide a by b. Fails when b is zero."""
  if (b == 0) {
    return failure("Cannot divide by zero")
  }
  return success(a / b)
}