hcler
Encode arbitrary Go types to Hashicorp's HCL format.
Usage
Common types
hcler.Encode()
can be used with most common types.
Custom types
In order to support custom types, hcler provides the hcler.Encoder
interface, similar to json.Marshaler
& co.
The interface only requires the EncodeHCL() (string, error)
method.
Benchmark
goos: linux
goarch: amd64
pkg: github.com/creack/hcler
BenchmarkMapStringKeyEncoder/hcl_map-32 1000000 1856 ns/op 334 B/op 14 allocs/op
BenchmarkMapStringKeyEncoder/map_str_iface-32 1000000 1883 ns/op 333 B/op 14 allocs/op
BenchmarkMapInterfaceEncoder/hcl_i_map-32 300000 4259 ns/op 1346 B/op 20 allocs/op
BenchmarkMapInterfaceEncoder/map_iface_iface-32 300000 4561 ns/op 1346 B/op 20 allocs/op
BenchmarkDiscarded/map_str_slice_prealloc-32 500000 3654 ns/op 512 B/op 24 allocs/op
BenchmarkDiscarded/map_str_slice_noprealloc-32 500000 3759 ns/op 528 B/op 25 allocs/op
PASS
ok github.com/creack/hcler 10.349s