func CloneHclBlock()

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
}