|| This module contains the xpcom interfaces exposed to rust code.
The items in this module come in a few flavours:
1. `nsI*`: These are the types for XPCOM interfaces. They should always be
passed behind a reference, pointer, or `RefPtr`. They may be coerced to
their base interfaces using the `coerce` method.
2. `nsI*Coerce`: These traits provide the implementation mechanics for the
`coerce` method, and can usually be ignored. *These traits are hidden in
3. `nsI*VTable`: These structs are the vtable definitions for each type.
They contain the base interface's vtable, followed by pointers for each
of the vtable's methods. If direct access is needed, a `*const nsI*` can
be safely transmuted to a `*const nsI*VTable`. *These structs are hidden
4. Typedefs used in idl file definitions.
|| This module contains definitions of interfaces which are used in idl files
as forward declarations, but are not actually defined in an idl file.
NOTE: The IIDs in these files must be kept in sync with the IDL definitions
in the corresponding C++ files.