Documentation
¶
Overview ¶
Package api defines implementation-independent contracts for compiling, executing, and debugging Ferret queries.
Index ¶
Constants ¶
This section is empty.
Variables ¶
This section is empty.
Functions ¶
This section is empty.
Types ¶
type Location ¶
Location represents the location of a specific point in a source file, including the file name and position.
type OptimizationLevel ¶
type OptimizationLevel int
const ( OptimizationNone OptimizationLevel = iota OptimizationBasic OptimizationFull OptimizationAggressive )
type Plan ¶
type Plan interface {
io.Closer
Params() []string
NewSession(ctx context.Context, opts ...SessionOption) (Session, error)
NewDebugSession(ctx context.Context, opts ...SessionOption) (debugger.Session, error)
}
Plan represents an already compiled program. Compilation errors are returned before a plan is published. Plans support independent sessions and are not consumed by execution. Callers close sessions before their plan. Close is idempotent, retains its cleanup result, and prevents new sessions. Admitted creation settles before parent cleanup; descendant cleanup is not guaranteed. Params returns a caller-owned snapshot. Contexts must be non-nil.
type PlanOption ¶
type PlanOption = func(PlanOptions) error
func WithOptimizationLevel ¶
func WithOptimizationLevel(level OptimizationLevel) PlanOption
WithOptimizationLevel sets the optimization level for the execution plan.
type PlanOptions ¶
type PlanOptions interface {
SetOptimizationLevel(OptimizationLevel) error
}
type Position ¶
Position represents a specific point in a source file, defined by line and column numbers.
type Range ¶
Range represents a range of characters in a source file, including the location and span.
type Runtime ¶
type Runtime interface {
io.Closer
Run(ctx context.Context, src Source, opts ...SessionOption) (Output, error)
Compile(ctx context.Context, src Source, opts ...PlanOption) (Plan, error)
CompileDebug(ctx context.Context, src Source, opts ...PlanOption) (Plan, error)
}
Runtime compiles source into reusable plans. Callers own directly created plans and sessions and close them from children to parents before the runtime. Close is idempotent, retains its cleanup result, and rejects new work. Admitted creation settles before parent cleanup. Descendant cleanup is not guaranteed. Contexts must be non-nil. Run closes its temporary session and plan, preserving execution and cleanup errors together with any available encoded output.
type Session ¶
Session executes a compiled plan with per-session configuration. Run observes its non-nil context and returns caller-owned encoded output. Unless documented otherwise, callers serialize Run and settle it before Close. Close is idempotent and retains its cleanup result.
type SessionOption ¶
type SessionOption = func(SessionOptions) error
func WithFSRoot ¶
func WithFSRoot(root string) SessionOption
WithFSRoot selects the rooted filesystem used by one execution session. The runtime defines path validation and owns any filesystem resources created for the session.
func WithOutputContentType ¶
func WithOutputContentType(contentType string) SessionOption
WithOutputContentType selects the output codec content type for session results.
func WithParam ¶
func WithParam(key string, value any) SessionOption
WithParam sets a session parameter for the execution.
func WithParams ¶
func WithParams(params map[string]any) SessionOption
WithParams merges the provided parameter map into the session environment, overriding existing keys while preserving any other previously defined parameters.
type SessionOptions ¶
type SessionOptions interface {
SetParam(string, any) error
SetParams(map[string]any) error
SetOutputContentType(string) error
SetFSRoot(string) error
}
SessionOptions is implemented by the runtime's actual session option owner. Implementations apply non-nil options once in order, joining validation errors before acquiring resources. Later setters override earlier values; SetParams merges keys. Runtime-specific options reject incompatible targets.
type Source ¶
Source represents the input data for a Ferret query.
func NewAnonymousSource ¶
NewAnonymousSource creates a new anonymous Source instance with the given content.
Source Files
¶
Directories
¶
| Path | Synopsis |
|---|---|
|
Package debugger defines portable contracts and values for controlling and inspecting Ferret debug sessions, including events, breakpoints, frames, and values.
|
Package debugger defines portable contracts and values for controlling and inspecting Ferret debug sessions, including events, breakpoints, frames, and values. |
|
Package diagnostics defines the portable structured reporting model shared by Ferret runtimes and tooling.
|
Package diagnostics defines the portable structured reporting model shared by Ferret runtimes and tooling. |
|
Package result defines portable encoded outputs returned by Ferret query execution.
|
Package result defines portable encoded outputs returned by Ferret query execution. |
|
Package source defines portable Ferret source inputs and coordinates.
|
Package source defines portable Ferret source inputs and coordinates. |