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.