code: def mark_typed_object(self, name, type_object):
          
  
          if not hasattr(type_object, 'dump'):
              raise ArgumentError("The passed type object %s is missing required method: dump()" % type_object)
          if not hasattr(type_object, 'Restore'):
              raise ArgumentError("The passed type object %s is missing required method: Restore()" % type_object)
  
          def _dump_obj(obj):
              if obj is None:
                  return None
  
              return obj.dump()
  
          def _restore_obj(obj):
              if obj is None:
                  return obj
  
              return type_object.Restore(obj)
  
          self.mark_complex(name, _dump_obj, _restore_obj)
docs: Mark a property as containing a serializable object.
  
          This convenience method allows you to avoid having to call
          ``mark_complex()`` whenever you need to serialize a complex object.
          This method requires that property ``name`` be a single class that
          contains a dump() method and a Restore() class method where
          type_object.Restore(x.dump()) == x.
  
          Args:
              name (str): The name of the complex property.
              type_object: The class object that will be contained inside
                  this property.