The main HCL package is more visible this way, and so it's easier than having to pick it out from dozens of other package directories.
HCL User Functions Extension
This HCL extension allows a calling application to support user-defined functions.
Functions are defined via a specific block type, like this:
function "add" {
params = [a, b]
result = a + b
}
function "list" {
params = []
variadic_param = items
result = items
}
The extension is implemented as a pre-processor for cty.Body
objects. Given
a body that may contain functions, the DecodeUserFunctions
function searches
for blocks that define functions and returns a functions map suitable for
inclusion in a hcl.EvalContext
. It also returns a new cty.Body
that
contains the remainder of the content from the given body, allowing for
further processing of remaining content.
For more information, see the godoc reference.