def read_user_defined
      klass_name = read(cache: false)
      klass = safe_const_get(klass_name)
      data = read_string(cache: false)
      result = klass._load(data)

      @object_cache << result

      result
    end
def read_user_defined
      klass_name = read(cache: false)
      klass = safe_const_get(klass_name)
      data = read_string(cache: false)
      result = klass._load(data)

      @object_cache << result

      result
    end
Reads a 'User Defined' object that has '_dump/self._load' methods

 @example
   class UserDefined
     def _dump(level)
       '_dumped'
     end
   end

   UserDefined.new
 is encoded as
   'u', :UserDefined, '_dumped'

 To load it back UserDefined._load' must be used.