Mainly redefine or reused what Terraform did. * allow to used `variables`, `variable` and `local` blocks * import the following functions and their docs from Terraform: abs, abspath, basename, base64decode, base64encode, bcrypt, can, ceil, chomp, chunklist, cidrhost, cidrnetmask, cidrsubnet, cidrsubnets, coalesce, coalescelist, compact, concat, contains, convert, csvdecode, dirname, distinct, element, file, fileexists, fileset, flatten, floor, format, formatdate, formatlist, indent, index, join, jsondecode, jsonencode, keys, length, log, lookup, lower, max, md5, merge, min, parseint, pathexpand, pow, range, reverse, rsadecrypt, setintersection, setproduct, setunion, sha1, sha256, sha512, signum, slice, sort, split, strrev, substr, timestamp, timeadd, title, trim, trimprefix, trimspace, trimsuffix, try, upper, urlencode, uuidv4, uuidv5, values, yamldecode, yamlencode, zipmap.
27 lines
668 B
Go
27 lines
668 B
Go
package yaml
|
|
|
|
// Set the writer error and return false.
|
|
func yaml_emitter_set_writer_error(emitter *yaml_emitter_t, problem string) bool {
|
|
emitter.error = yaml_WRITER_ERROR
|
|
emitter.problem = problem
|
|
return false
|
|
}
|
|
|
|
// Flush the output buffer.
|
|
func yaml_emitter_flush(emitter *yaml_emitter_t) bool {
|
|
if emitter.write_handler == nil {
|
|
panic("write handler not set")
|
|
}
|
|
|
|
// Check if the buffer is empty.
|
|
if emitter.buffer_pos == 0 {
|
|
return true
|
|
}
|
|
|
|
if err := emitter.write_handler(emitter, emitter.buffer[:emitter.buffer_pos]); err != nil {
|
|
return yaml_emitter_set_writer_error(emitter, "write error: "+err.Error())
|
|
}
|
|
emitter.buffer_pos = 0
|
|
return true
|
|
}
|