Core of the autocxx engine. See generate for most details on how this works.

Struct which stores multiple sets of bindings and can be serialized to disk. This is used when our build system uses autocxx_gen; that can handle multiple include_cpp! macros and therefore generate multiple sets of Rust bindings. We can’t simply include! those because there’s no (easy) way to pass their details from the codegen phase across to the Rust macro phase. Instead, we use this data structure to store several sets of .rs bindings in a single file, and then the macro extracts the correct set of bindings at expansion time.

A little like syn::Path but simpler - contains only identifiers, no path arguments. Guaranteed to always have at least one identifier.