Skip to main content

JAVA_RUNTIME

Constant JAVA_RUNTIME 

Source
pub const JAVA_RUNTIME: &str = r#"
/**
 * OxiLean Java Runtime — generated, do not modify.
 */
public final class OxiLeanRuntime {

    private OxiLeanRuntime() {}

    /** Called when pattern matching reaches an unreachable branch. */
    public static RuntimeException unreachable() {
        throw new IllegalStateException("OxiLean: unreachable code reached");
    }

    /** Saturating natural-number subtraction (truncates at 0). */
    public static long natSub(long a, long b) {
        return Math.max(0L, a - b);
    }

    /** Natural-number division (returns 0 on division by zero). */
    public static long natDiv(long a, long b) {
        return b == 0L ? 0L : a / b;
    }

    /** Natural-number modulo (returns a on division by zero). */
    public static long natMod(long a, long b) {
        return b == 0L ? a : a % b;
    }

    /** Boolean to Nat conversion. */
    public static long decide(boolean b) {
        return b ? 1L : 0L;
    }

    /** String representation of a Nat. */
    public static String natToString(long n) {
        return Long.toString(n);
    }

    /** String append. */
    public static String strAppend(String a, String b) {
        return a + b;
    }

    /** Pair (generic tuple). */
    public record Pair<A, B>(A fst, B snd) {}

    /** Pair constructor. */
    public static <A, B> Pair<A, B> mkPair(A a, B b) {
        return new Pair<>(a, b);
    }
}
"#;
Expand description

Minimal Java runtime class emitted at the top of every generated module.