docs: def _DeepCopy(self, obj):
      """Creates an object copy by serializing/deserializing it.
  
      RDFStruct.Copy() doesn't deep-copy repeated fields which may lead to
      hard to catch bugs.
  
      Args:
        obj: RDFValue to be copied.
  
      Returns:
        A deep copy of the passed RDFValue.
      """
      precondition.AssertType(obj, rdfvalue.RDFValue)
  
      return obj.__class__.FromSerializedString(obj.SerializeToString())