def index_content(self) -> str:
        """
        Returns the contents of the index RST file.
        """
        # Build the toctree command
        index_filename = self.index_filename
        spacer = "    "
        toctree_lines = [
            "..  toctree::",
            spacer + ":maxdepth: {}".format(self.toctree_maxdepth),
            ""
        ]
        for f in self.files_to_index:
            if isinstance(f, FileToAutodocument):
                rst_filename = spacer + f.rst_filename_rel_autodoc_index(
                    index_filename)
            elif isinstance(f, AutodocIndex):
                rst_filename = (
                    spacer + f.index_filename_rel_other_index(index_filename)
                )
            else:
                fail("Unknown thing in files_to_index: {!r}".format(f))
                rst_filename = ""  # won't get here; for the type checker
            toctree_lines.append(rst_filename)
        toctree = "\n".join(toctree_lines)

        # Create the whole file
        content = """
.. {filename}

{AUTOGENERATED_COMMENT}

{prefix}

{underlined_title}

{introductory_rst}

{toctree}

{suffix}
                """.format(
            filename=self.index_filename_rel_project_root,
            AUTOGENERATED_COMMENT=AUTOGENERATED_COMMENT,
            prefix=self.rst_prefix,
            underlined_title=rst_underline(
                self.title, underline_char=self.index_heading_underline_char),
            introductory_rst=self.introductory_rst,
            toctree=toctree,
            suffix=self.rst_suffix,
        ).strip() + "\n"
        return content
Returns the contents of the index RST file.