Documentation
¶
Overview ¶
Package compile owns loading, validation, import resolution, and compilation of workflow sources into executable graph plans.
It is extraction-ready engine core. Imports are limited to the standard library and explicitly adopted extraction-safe dependencies; Hadron internal packages are forbidden.
The source loader preserves YAML authoring shape and locations. Compilation lowers that shape to an immutable ExecutionPlan. Value-dependency inference parses structural expression references into data edges and a direct invocation visibility plan. Validation checks graph structure plus caller-supplied step-kind, policy, and definition seams. None of these phases executes expressions or starts runtime work. CompileWithOptions may apply pure, explicitly registered node expanders; generated child workflows are serialized in ExecutionPlan.BundledDefinitions so resolution survives JSON round trips and process restarts.
Index ¶
- Constants
- Variables
- func EdgeSourceKey(from, to string, kind graph.EdgeKind) string
- func GraphDigest(value graph.Graph) (string, error)
- func PlanDigest(value ExecutionPlan) (string, error)
- func ValidateGraph(ctx context.Context, value graph.Graph, options ValidationOptions) []diagnostic.Diagnostic
- func ValidatePlan(ctx context.Context, plan *ExecutionPlan, options ValidationOptions) []diagnostic.Diagnostic
- type CompileOptions
- type CompileResult
- type DeferredDependency
- type DeferredDependencyReason
- type DefinitionResolver
- type DefinitionResolverFunc
- type DependencyOptions
- type DependencyResult
- type ExecutionPlan
- type GraphCompileOptions
- type NodeExpander
- type NodeExpansion
- type NodeExpansionRequest
- type NodeValidation
- type PolicyHook
- type PolicyHookFunc
- type ResolvedDefinition
- type Result
- type SemanticPlanDigest
- type SemanticPlanDocument
- type SemanticPlanFingerprint
- type Source
- type SourceDigest
- type StepKindLookup
- type ValidationOptions
- type ValueConsumer
- type ValueConsumerKind
- type ValueScope
- type ValueVisibilityPlan
- type VerificationExpressionExtractor
- type VerificationExpressionExtractorFunc
Constants ¶
const ( // CodeVerificationExpressionExtraction identifies a structured verifier // expression-extractor failure that omitted its own valid diagnostic code. CodeVerificationExpressionExtraction diagnostic.Code = "HADR-SOURCE-028" // CodeUnknownValueProducer identifies a static step reference whose producer // does not exist in the graph. CodeUnknownValueProducer diagnostic.Code = "HADR-REF-006" // at the consumer's evaluation phase. CodeUnavailableValueReference diagnostic.Code = "HADR-REF-007" )
const ( // ExecutionPlanSchemaVersion is the serialized plan envelope version. ExecutionPlanSchemaVersion = "1" // CodeInvalidWorkflowShape identifies source structure that cannot be // represented faithfully by the graph IR. CodeInvalidWorkflowShape diagnostic.Code = "HADR-SOURCE-010" // CodeInvalidWorkflowID identifies an identity that cannot normalize to a // canonical graph identifier. CodeInvalidWorkflowID diagnostic.Code = "HADR-SOURCE-011" // CodeUnsupportedSourceField identifies a source field that this compiler // does not lower and therefore must not silently discard. CodeUnsupportedSourceField diagnostic.Code = "HADR-SOURCE-012" // CodeInvalidBindingSource identifies an ambiguous or malformed typed value // binding. CodeInvalidBindingSource diagnostic.Code = "HADR-SOURCE-013" // CodeInvalidActivation identifies a source activation declaration whose // shape or portable semantics cannot be represented faithfully. CodeInvalidActivation diagnostic.Code = "HADR-SOURCE-014" // CodeDuplicateActivationID identifies declarations whose authoring names // normalize to the same immutable activation identity. CodeDuplicateActivationID diagnostic.Code = "HADR-SOURCE-015" // CodeUnsupportedActivationAuthority identifies an attempt by workflow // source to claim host or operator ownership for an activation. CodeUnsupportedActivationAuthority diagnostic.Code = "HADR-SOURCE-016" // CodeNodeExpansion identifies a deterministic source-sugar expansion that // could not preserve the authored node's graph semantics. CodeNodeExpansion diagnostic.Code = "HADR-SOURCE-033" )
const ( // CodeUnsupportedSourceName identifies a source locator that is not a // preferred graph-native workflow filename. CodeUnsupportedSourceName diagnostic.Code = "HADR-SOURCE-001" // CodeMalformedSource identifies YAML that cannot form one source document. CodeMalformedSource diagnostic.Code = "HADR-SOURCE-002" // CodeMultipleSourceDocuments identifies a YAML stream with more than one // document. CodeMultipleSourceDocuments diagnostic.Code = "HADR-SOURCE-003" // CodeAmbiguousSourceShape identifies YAML mapping structure for which a // unique semantic source path cannot be constructed. CodeAmbiguousSourceShape diagnostic.Code = "HADR-SOURCE-004" // CodeLegacySource identifies an archived blueprint or pipeline root used as // graph-native workflow input. CodeLegacySource diagnostic.Code = "HADR-LEGACY-001" )
const ( // DefaultMaxCallDepth bounds definition traversal when a validation caller // supplies a DefinitionResolver without an explicit limit. DefaultMaxCallDepth = 32 // CodeDuplicateNodeID identifies node identities that collide after graph // normalization. CodeDuplicateNodeID diagnostic.Code = "HADR-SOURCE-020" // CodeGraphCycle identifies a cycle in explicit needs or normalized edges. CodeGraphCycle diagnostic.Code = "HADR-SOURCE-021" // CodeUnknownStepKind identifies a kind/version unavailable from the // supplied registry, including an unpinned kind with multiple versions. CodeUnknownStepKind diagnostic.Code = "HADR-SOURCE-022" // CodeInvalidCallMode identifies a call mode outside inline and run. CodeInvalidCallMode diagnostic.Code = "HADR-SOURCE-023" // CodeUnsupportedReadinessRule identifies an unsupported node readiness // rule. CodeUnsupportedReadinessRule diagnostic.Code = "HADR-SOURCE-024" // CodeInvalidForEach identifies a structurally invalid fan-out declaration. CodeInvalidForEach diagnostic.Code = "HADR-SOURCE-025" // CodeInvalidStepConfig identifies config rejected by a registered kind's // JSON Schema or by an adapter diagnostic without its own valid code. CodeInvalidStepConfig diagnostic.Code = "HADR-SOURCE-026" // CodeInvalidValidationInput identifies a nil plan passed to validation. CodeInvalidValidationInput diagnostic.Code = "HADR-SOURCE-027" // CodeInvalidCallShape identifies a call kind without a call declaration or // a non-call kind carrying call-only semantics. CodeInvalidCallShape diagnostic.Code = "HADR-SOURCE-029" // CodeInvalidCatch identifies a catch declaration that cannot produce one // deterministic error route. CodeInvalidCatch diagnostic.Code = "HADR-SOURCE-030" // CodeInvalidSwitch identifies a switch without deterministic ordered arms. CodeInvalidSwitch diagnostic.Code = "HADR-SOURCE-031" // CodeInvalidFinally identifies an invalid cleanup scope or node shape. CodeInvalidFinally diagnostic.Code = "HADR-SOURCE-032" // CodeInvalidMemoization identifies effect-unsafe or executor-denied memo policy. CodeInvalidMemoization diagnostic.Code = "HADR-SOURCE-036" // CodeInvalidDurability identifies a durability mode or reactor policy that // cannot be implemented truthfully by the selected graph and executor set. CodeInvalidDurability diagnostic.Code = "HADR-SOURCE-037" // CodeInvalidCompensation identifies a structurally or operationally // unsupported compensation declaration. CodeInvalidCompensation diagnostic.Code = "HADR-SOURCE-038" // CodeUnknownDependency identifies an explicit dependency endpoint absent // from the graph. CodeUnknownDependency diagnostic.Code = "HADR-REF-002" // CodeCallCycle identifies a recursive definition already active in the // current call path. CodeCallCycle diagnostic.Code = "HADR-REF-003" // CodeCallDepthExceeded identifies a definition call beyond the configured // traversal depth. CodeCallDepthExceeded diagnostic.Code = "HADR-REF-004" // CodeDefinitionResolution identifies a resolver failure during opt-in call // graph validation. CodeDefinitionResolution diagnostic.Code = "HADR-REF-005" // CodePolicyViolation is the fallback assignment for a policy hook finding // that omits or supplies an invalid code. CodePolicyViolation diagnostic.Code = "HADR-POLICY-001" // CodeInvalidKindSchema identifies registered metadata that is JSON-shaped // but cannot compile as JSON Schema. CodeInvalidKindSchema diagnostic.Code = "HADR-HOST-010" )
Variables ¶
var ( // ErrBundledDefinitionNotFound reports that a plan does not contain the // exact immutable definition requested by a call node. ErrBundledDefinitionNotFound = errors.New("bundled workflow definition not found") // ErrBundledDefinitionConflict reports duplicate or changed immutable // definition identity in one plan bundle. ErrBundledDefinitionConflict = errors.New("bundled workflow definition conflict") // ErrInvalidBundledDefinition reports malformed serialized definition // material. ErrInvalidBundledDefinition = errors.New("invalid bundled workflow definition") )
Functions ¶
func EdgeSourceKey ¶
EdgeSourceKey returns the stable compact key used by SourceMap.Edges.
func GraphDigest ¶
GraphDigest returns the compiler's canonical, relocation-stable SHA-256 digest for graph semantics. Node expanders use this when constructing an immutable bundled child definition before the parent plan is finalized.
func PlanDigest ¶
func PlanDigest(value ExecutionPlan) (string, error)
PlanDigest recomputes the compiler's canonical relocation-stable execution plan digest. It ignores exactly the provenance and source-location carriers ignored when Compile originally assigns ExecutionPlan.Digest.
func ValidateGraph ¶
func ValidateGraph(ctx context.Context, value graph.Graph, options ValidationOptions) []diagnostic.Diagnostic
ValidateGraph validates an application-neutral graph directly. Its root definition identity is derived from immutable graph fields for call-cycle detection.
func ValidatePlan ¶
func ValidatePlan(ctx context.Context, plan *ExecutionPlan, options ValidationOptions) []diagnostic.Diagnostic
ValidatePlan validates a compiled plan without binding or starting runtime work. A nil plan produces one structured diagnostic.
Types ¶
type CompileOptions ¶
type CompileOptions struct {
NodeExpanders []NodeExpander
}
CompileOptions supplies extraction-safe, deterministic source-sugar expanders. Expanders are selected by Name rather than caller order.
type CompileResult ¶
type CompileResult struct {
Plan *ExecutionPlan
Diagnostics []diagnostic.Diagnostic
}
CompileResult is the outcome of lowering a loaded source. Plan is present only when Diagnostics is empty.
func Compile ¶
func Compile(source *Source) CompileResult
Compile lowers one loaded graph-native workflow source into an immutable execution plan. It does not evaluate expressions, resolve definitions, infer dependencies, validate registered kinds, or perform graph validation.
func CompileGraph ¶
func CompileGraph(input graph.Graph, options GraphCompileOptions) CompileResult
CompileGraph finalizes canonical graph IR into an immutable execution plan. It never executes a plan or grants definition authority.
func CompileWithOptions ¶
func CompileWithOptions(source *Source, options CompileOptions) CompileResult
CompileWithOptions lowers source and then applies registered pure node expanders before graph and plan digests are computed. The same source and expander set must always produce byte-identical plan semantics.
type DeferredDependency ¶
type DeferredDependency struct {
Consumer ValueConsumer `json:"consumer"`
Expression *graph.Expression `json:"expression,omitempty"`
Reference *values.Reference `json:"reference,omitempty"`
ProducerID string `json:"producer_id,omitempty"`
Reason DeferredDependencyReason `json:"reason"`
}
DeferredDependency retains a dependency whose producer or invocation-local value cannot be fully selected at compile time. Reference is nil only for opaque verification config that had no registered extractor.
type DeferredDependencyReason ¶
type DeferredDependencyReason string
DeferredDependencyReason explains why a dependency must be resolved or checked at runtime instead of becoming a statically complete data edge.
const ( // DeferredDynamicStep is a computed steps[...] lookup or root-only steps map // access. It may observe only producers already visible through explicit or // separately inferred edges. DeferredDynamicStep DeferredDependencyReason = "dynamic_step" // DeferredFanOutItem is the invocation-local item root. DeferredFanOutItem DeferredDependencyReason = "fan_out_item" // DeferredFanOutIndex is the invocation-local index root. DeferredFanOutIndex DeferredDependencyReason = "fan_out_index" // DeferredOptionalProducer is a producer that may not materialize because it // is conditional, branch-selected, or fan-out shaped. DeferredOptionalProducer DeferredDependencyReason = "optional_producer" // DeferredOpaqueVerification records verifier config that core cannot inspect // without an extractor registered for that verifier kind. DeferredOpaqueVerification DeferredDependencyReason = "opaque_verification" )
type DefinitionResolver ¶
type DefinitionResolver interface {
ResolveDefinition(ctx context.Context, ref graph.DefinitionRef) (ResolvedDefinition, error)
}
DefinitionResolver resolves a child definition for call-cycle and depth validation. Ordinary structural validation never invokes it.
func NewBundledDefinitionResolver ¶
func NewBundledDefinitionResolver(plan *ExecutionPlan) (DefinitionResolver, error)
NewBundledDefinitionResolver constructs an immutable resolver solely from a serialized execution plan. It does not retain plan-owned maps or slices and therefore remains safe after the caller mutates or discards the plan.
type DefinitionResolverFunc ¶
type DefinitionResolverFunc func(context.Context, graph.DefinitionRef) (ResolvedDefinition, error)
DefinitionResolverFunc adapts a function to DefinitionResolver.
func (DefinitionResolverFunc) ResolveDefinition ¶
func (f DefinitionResolverFunc) ResolveDefinition(ctx context.Context, ref graph.DefinitionRef) (ResolvedDefinition, error)
ResolveDefinition implements DefinitionResolver.
type DependencyOptions ¶
type DependencyOptions struct {
VerificationExtractors map[string]VerificationExpressionExtractor
}
DependencyOptions supplies expression ownership for opaque verifier config. Map keys are exact VerificationCheck.Kind values. Unknown kinds remain deferred and are never inspected lexically by core.
type DependencyResult ¶
type DependencyResult struct {
Plan *ExecutionPlan `json:"plan,omitempty"`
Visibility ValueVisibilityPlan `json:"visibility"`
Deferred []DeferredDependency `json:"deferred,omitempty"`
Diagnostics []diagnostic.Diagnostic `json:"diagnostics,omitempty"`
}
DependencyResult is the outcome of dependency inference. Plan is nil when any error diagnostic exists. Visibility and Deferred remain available for deterministic diagnostics, tooling, and conformance inspection.
func InferValueDependencies ¶
func InferValueDependencies(plan *ExecutionPlan, options DependencyOptions) DependencyResult
InferValueDependencies parses expression references without evaluating them, adds deterministic data edges to a cloned plan, and derives direct invocation visibility. It then re-runs only topology and node-shape validation; registered-kind, policy, and definition validation remain the caller's separate W01 validation phase.
type ExecutionPlan ¶
type ExecutionPlan struct {
SchemaVersion string `json:"schema_version"`
ID string `json:"id"`
Digest string `json:"digest"`
Definition graph.DefinitionRef `json:"definition"`
Provenance graph.Provenance `json:"provenance"`
SourceDigests []SourceDigest `json:"source_digests"`
Graph graph.Graph `json:"graph"`
SourceMap graph.SourceMap `json:"source_map"`
// BundledDefinitions are immutable generated or vendored child workflows
// required by this plan. They make call resolution restart-safe without a
// process-local compiler registry.
BundledDefinitions []ResolvedDefinition `json:"bundled_definitions,omitempty"`
}
ExecutionPlan is the immutable, extraction-ready build artifact consumed by later binding and runtime packages. Definition and Graph contain executable identity and semantics. The original locator appears only in provenance and source-location fields: the plan-level SourceMap and Graph's root, nested, and full-map SourceRef carriers.
SourceMap.Nodes is keyed by normalized node ID, which is the compact source reference a later node invocation persists. Inputs and Outputs use their normalized names. Edges use EdgeSourceKey.
type GraphCompileOptions ¶
type GraphCompileOptions struct {
SourceFormat graph.SourceFormat
SourceDigest string
Definition graph.DefinitionRef
Compile CompileOptions
}
GraphCompileOptions supplies exact source identity for graph IR emitted by an SDK, UI, or agent. CompileGraph performs the same expansion and immutable plan finalization as source lowering; dependency inference and host-selected validation remain the caller's explicit subsequent phases.
type NodeExpander ¶
type NodeExpander interface {
Name() string
ExpandNode(NodeExpansionRequest) (expansion NodeExpansion, handled bool, diagnostics []diagnostic.Diagnostic)
}
NodeExpander is a pure compiler extension. ExpandNode returns handled=false when the node is outside its vocabulary. A handled expansion with any diagnostic is rejected; implementations must not perform I/O or consult mutable registries.
type NodeExpansion ¶
type NodeExpansion struct {
EntryNodeID string `json:"entry_node_id"`
ExitNodeID string `json:"exit_node_id"`
Nodes []graph.Node `json:"nodes"`
Edges []graph.Edge `json:"edges,omitempty"`
Definitions []ResolvedDefinition `json:"definitions,omitempty"`
}
NodeExpansion replaces one authored node with ordinary graph nodes and optional immutable child definitions. EntryNodeID receives inbound edges; ExitNodeID retains downstream dependency and expression identity.
type NodeExpansionRequest ¶
NodeExpansionRequest gives an expander a defensive copy of the complete lowered graph and the candidate node. The graph is read-only input; returned replacements must carry every semantic field the expander accepts.
type NodeValidation ¶
type NodeValidation struct {
GraphID string
Node graph.Node
Kind *stepkind.StepKindSpec
}
NodeValidation is the application-neutral input supplied to a PolicyHook. Kind is nil when the node's step kind is unavailable; hooks may still report policy findings based on graph declarations alone.
type PolicyHook ¶
type PolicyHook interface {
ValidateNode(ctx context.Context, input NodeValidation) []diagnostic.Diagnostic
}
PolicyHook validates effect, retry, idempotency, or other host-selected policy combinations without importing a concrete policy implementation.
type PolicyHookFunc ¶
type PolicyHookFunc func(context.Context, NodeValidation) []diagnostic.Diagnostic
PolicyHookFunc adapts a function to PolicyHook.
func (PolicyHookFunc) ValidateNode ¶
func (f PolicyHookFunc) ValidateNode(ctx context.Context, input NodeValidation) []diagnostic.Diagnostic
ValidateNode implements PolicyHook.
type ResolvedDefinition ¶
type ResolvedDefinition struct {
Definition graph.DefinitionRef `json:"definition"`
Graph graph.Graph `json:"graph"`
InputBindings map[string]graph.Binding `json:"input_bindings,omitempty"`
}
ResolvedDefinition is the immutable definition identity and graph returned by a DefinitionResolver for opt-in call traversal and execution. InputBindings are resolver-owned partial-application defaults (for example, an imported definition's with: bindings). Call sites overlay their node-local bindings after these defaults are evaluated.
type Result ¶
type Result struct {
Source *Source
Diagnostics []diagnostic.Diagnostic
}
Result is the outcome of loading workflow source. Source is present only when Diagnostics is empty.
type SemanticPlanDigest ¶
type SemanticPlanDigest string
SemanticPlanDigest is not assignment-compatible with source-bound digest strings accepted by DefinitionRef, PlanRef, or ExecutionPlan.
type SemanticPlanDocument ¶
type SemanticPlanDocument struct {
SchemaVersion string `json:"schema_version"`
CanonicalJSON json.RawMessage `json:"canonical_json"`
}
SemanticPlanDocument is canonical comparison material for authoring-tool conformance tests. It is deliberately not an ExecutionPlan and cannot be passed to a runtime, registry, or definition API.
func CanonicalPlanSemantics ¶
func CanonicalPlanSemantics(value ExecutionPlan) (SemanticPlanDocument, error)
CanonicalPlanSemantics returns source-identity-free comparison material for cross-front-end conformance. Runtime plan and definition digests must always use PlanDigest and their exact source-bound identities instead.
type SemanticPlanFingerprint ¶
type SemanticPlanFingerprint struct {
SchemaVersion string `json:"schema_version"`
SemanticDigest SemanticPlanDigest `json:"semantic_digest"`
}
SemanticPlanFingerprint is a tooling-only equivalence identity. Its struct shape deliberately prevents accidental use as a runtime PlanRef or definition digest, both of which must retain exact source identity.
func FingerprintPlanSemantics ¶
func FingerprintPlanSemantics(value ExecutionPlan) (SemanticPlanFingerprint, error)
FingerprintPlanSemantics compares plans produced by different authoring front ends. It removes exact source identity in addition to ordinary source locations, but preserves executable graph and bundled-definition semantics. The result is never accepted by runtime or registry APIs.
type Source ¶
Source preserves a single YAML document and its graph-native source locations. Document is the unlowered yaml.v3 AST, including node tags, styles, anchors, aliases, and comments retained by the YAML parser.
Semantic paths append a mapping key or a zero-based sequence index at each level. The empty path identifies the document root. YAML mappings must use unique string keys so every semantic path has exactly one meaning.
type SourceDigest ¶
type SourceDigest struct {
Format graph.SourceFormat `json:"format"`
Digest string `json:"digest"`
}
SourceDigest identifies immutable source content without embedding its relocation-sensitive locator. Digest uses SHA-256 over the exact loaded bytes, including comments and authoring layout.
type StepKindLookup ¶
type StepKindLookup interface {
Lookup(name, version string) (stepkind.StepKind, bool)
List() []stepkind.StepKindSpec
}
StepKindLookup is the read-only registry surface required by validation. A stepkind.Registry satisfies this interface.
type ValidationOptions ¶
type ValidationOptions struct {
StepKinds StepKindLookup
// Verifiers defaults to the deterministic core verification registry when
// nil. Host-owned reviewer adapters supply an exact immutable registry.
Verifiers verification.Registry
PolicyHooks []PolicyHook
Definitions DefinitionResolver
MaxCallDepth int
}
ValidationOptions supplies extraction-safe collaborators for validation. Definitions is optional; when nil, validation does not resolve calls. MaxCallDepth defaults to DefaultMaxCallDepth when it is not positive.
type ValueConsumer ¶
type ValueConsumer struct {
Kind ValueConsumerKind `json:"kind"`
ID string `json:"id"`
Surface string `json:"surface"`
Source *graph.SourceRef `json:"source,omitempty"`
}
ValueConsumer identifies one graph location that consumes expressions. Surface is a stable semantic path such as "with.payload" or "verify.checks[0].expression[0]".
type ValueConsumerKind ¶
type ValueConsumerKind string
ValueConsumerKind identifies the evaluation scope that consumes a reference.
const ( // ValueConsumerNode is an executable node invocation. ValueConsumerNode ValueConsumerKind = "node" // ValueConsumerWorkflowOutput is a workflow output evaluated after graph work. ValueConsumerWorkflowOutput ValueConsumerKind = "workflow_output" // ValueConsumerActivation is a pre-run activation declaration. ValueConsumerActivation ValueConsumerKind = "activation" )
type ValueScope ¶
type ValueScope struct {
Producers []string `json:"producers"`
FanOut bool `json:"fan_out,omitempty"`
}
ValueScope is the direct value visibility of one evaluation scope. Producers never includes transitive or merely completed graph nodes.
type ValueVisibilityPlan ¶
type ValueVisibilityPlan struct {
Nodes map[string]ValueScope `json:"nodes"`
WorkflowOutputs ValueScope `json:"workflow_outputs"`
Activations map[string]ValueScope `json:"activations,omitempty"`
}
ValueVisibilityPlan is the binder artifact produced beside an inferred execution plan. Nodes contains every normalized node ID, including nodes with an empty producer set.
func (ValueVisibilityPlan) ScopeNodeContext ¶
func (p ValueVisibilityPlan) ScopeNodeContext( nodeID string, available values.ExpressionContext, base values.ExpressionOptions, ) (values.ExpressionContext, values.ExpressionOptions, error)
ScopeNodeContext filters an available runtime context to a node's direct explicit-plus-inferred producers. base is copied so host policy such as AllowEnv is preserved; VisibleSteps is replaced by the compiler allowlist. Fan-out item and index roots are retained only for fan-out node invocations.
type VerificationExpressionExtractor ¶
type VerificationExpressionExtractor interface {
ExtractVerificationExpressions(check graph.VerificationCheck) ([]graph.Expression, []diagnostic.Diagnostic)
}
VerificationExpressionExtractor gives one registered verifier kind sole authority to expose expression-bearing fields from its opaque config. Diagnostics should be structured; omitted sources are assigned to the verification check carrier by InferValueDependencies.
type VerificationExpressionExtractorFunc ¶
type VerificationExpressionExtractorFunc func(graph.VerificationCheck) ([]graph.Expression, []diagnostic.Diagnostic)
VerificationExpressionExtractorFunc adapts a function to an extractor.
func (VerificationExpressionExtractorFunc) ExtractVerificationExpressions ¶
func (f VerificationExpressionExtractorFunc) ExtractVerificationExpressions(check graph.VerificationCheck) ([]graph.Expression, []diagnostic.Diagnostic)
ExtractVerificationExpressions implements VerificationExpressionExtractor.
Source Files
¶
- bundles.go
- dependencies.go
- doc.go
- expansion.go
- graph.go
- lower.go
- lower_activation.go
- lower_advanced.go
- lower_ast.go
- lower_binding.go
- lower_durability.go
- lower_node.go
- plan.go
- schema_generate.go
- source.go
- validation.go
- validation_calls.go
- validation_compensation.go
- validation_durability.go
- validation_stepkind.go
- validation_structure.go
Directories
¶
| Path | Synopsis |
|---|---|
|
internal
|
|
|
planschema
Package planschema generates the committed ExecutionPlan JSON Schema from compile.ExecutionPlan while referencing graph types from the graph schema.
|
Package planschema generates the committed ExecutionPlan JSON Schema from compile.ExecutionPlan while referencing graph types from the graph schema. |
|
planschema/cmd
command
|