Package-level declarations

Types

Link copied to clipboard
interface Directive

A directive: a declaration of its option names plus a pure body.

Link copied to clipboard

A directive occurrence's arguments — all verbatim (unresolved). Resolve what you need through DirectiveContext; an argument nobody resolves is never evaluated.

Link copied to clipboard

A directive body's entire capability set. bindings form a child frame on the environment chain (nearest frame → outer frames → defs → state), giving shadowing and per-iteration isolation for free.

Link copied to clipboard

An immutable marker → Directive table — the resolver's only extension point.

Link copied to clipboard

RFC 6901 JSON Pointer — parse and data walk.

Link copied to clipboard
Link copied to clipboard
sealed class ResolveException

The one failure type of Resolver.resolve: same inputs always produce the same tree or the same error — never a partial tree.

Link copied to clipboard
class Resolver(val directives: DirectiveRegistry = DirectiveRegistry.Default)

Turns a dynamic view template — a JoyDOM Spec containing $-marked directives — into a static document the renderer draws unchanged.

Link copied to clipboard
sealed class ValidationIssue

A creation-time finding from Resolver.validate. Authoring tools must run validation before persisting a document; Resolver.resolve never re-checks these (runtime name collisions are settled by precedence, not errors).

Functions

Link copied to clipboard
fun Directive(options: Set<String> = emptySet(), body: (args: DirectiveArgs, ctx: DirectiveContext) -> <Error class: unknown class>): Directive

Builds a Directive from a lambda — keeps custom directives one expression.