| // Package userfunc implements a HCL extension that allows user-defined |
| // functions in HCL configuration. |
| // |
| // Using this extension requires some integration effort on the part of the |
| // calling application, to pass any declared functions into a HCL evaluation |
| // context after processing. |
| // |
| // The function declaration syntax looks like this: |
| // |
| // function "foo" { |
| // params = ["name"] |
| // result = "Hello, ${name}!" |
| // } |
| // |
| // When a user-defined function is called, the expression given for the "result" |
| // attribute is evaluated in an isolated evaluation context that defines variables |
| // named after the given parameter names. |
| // |
| // The block name "function" may be overridden by the calling application, if |
| // that default name conflicts with an existing block or attribute name in |
| // the application. |
| package userfunc |