Feel.Runtime.Budget (feel v0.1.0)

Copy Markdown View Source

A cumulative budget for sequential runs in one process.

within/1 owns and removes the counters, including on an exception. Pass its handle as budget: to each FEEL run. Each environment receives the remaining limits and reports its consumption once, without adding a lookup to every runtime operation. Diagnostics and call depth remain local to the expression; their count and total calls share the budget. A handle cannot be used outside its scope or from another process. An unexpected exception, throw or exit invalidates the handle: the partial environment is unavailable for metering, so later runs fail closed instead of receiving a fresh budget.

Summary

Functions

Runs a function with a fresh, process-owned budget handle and always removes its counters.

Types

t()

@opaque t()

Functions

within(fun)

@spec within((t() -> result)) :: result when result: term()

Runs a function with a fresh, process-owned budget handle and always removes its counters.