in hcl_block.go [199:223]
func CloneHclBlock(hb *HclBlock) *HclBlock {
// Clone the hclsyntax.Block
cloneBlock := CloneHclSyntaxBlock(hb.Block)
// Clone the HclBlock
cloneHb := &HclBlock{
Block: cloneBlock,
wb: clone(hb.wb),
ForEach: hb.ForEach,
attributes: make(map[string]*HclAttribute),
blocks: make([]*HclBlock, len(hb.blocks)),
}
// Clone attributes
for name, attr := range hb.attributes {
cloneHb.attributes[name] = clone(attr)
}
// Clone blocks recursively
for i, block := range hb.blocks {
cloneHb.blocks[i] = CloneHclBlock(block)
}
return cloneHb
}