def toc_string
      return nil if not @read
      result = Lib.get_toc_string @handle
      if not result
        # probably an old version of libdiscid (< 0.6.0)
        # gather toc string from submission_url
        match = /toc=([0-9+]+)/.match self.submission_url
        if match
          result = match[1].tr("+", " ")
        else
          raise "can't get toc string from submission url"
        end
      end

      return result
    end
def toc_string
      return nil if not @read
      result = Lib.get_toc_string @handle
      if not result
        # probably an old version of libdiscid (< 0.6.0)
        # gather toc string from submission_url
        match = /toc=([0-9+]+)/.match self.submission_url
        if match
          result = match[1].tr("+", " ")
        else
          raise "can't get toc string from submission url"
        end
      end

      return result
    end
Return a string representing CD Table Of Contents (TOC).

 The TOC suitable as a value of the toc parameter when accessing the
 MusicBrainz Web Service. This enables fuzzy searching when the actual
 DiscID is not found.

 Note that this is the unencoded value, which still contains spaces.

 For libdiscid >= 0.6 the native implementation will be used. For older
 versions falls back to extract the TOC from {Disc#submission_url}.

 @since 1.3

 @raise [RuntimeError] get_toc_string is unsupported by libdiscid and
                       could not get extracted from {Disc#submission_url}
 @return [String] The TOC string or `nil` if no ID was yet read.