swift by default Implmenet the copy and write for the dicrotnary type and array type that's means when we look the buffer pointer for them in the memory we will find the pointer is the same while in another types or in our custome type we have a diffrent pointer if objc1 = objc2
This strcut will fix our object declaration in the memory by ensure if there is a strong ref for this object then create a ref for it otherwise don't create just assign it to the same ref we already have.