By default, cargo doc builds the documentation for public
constructs only, so we make public those that can. Since cindex
is not safe, we keep it private.
Unfortunately, the macro syntax of rust-cpython doesn't allow us
to document the classes directly, so we resort to do that at
the module level.