Name Description Size Coverage
analysis -
annotations.rs Types and functions related to bindgen annotation comments. Users can add annotations in doc comments to types that they would like to replace other types with, mark as opaque, etc. This module deals with all of that stuff. 8537 -
comment.rs Utilities for manipulating C/C++ comments. 2878 -
comp.rs Compound types (unions and structs) in our intermediate representation. 59795 -
context.rs Common context that is passed around during parsing and codegen. 114837 -
derive.rs Traits for determining whether we can derive traits for a thing or not. These traits tend to come in pairs: 1. A "trivial" version, whose implementations aren't allowed to recursively look at other types or the results of fix point analyses. 2. A "normal" version, whose implementations simply query the results of a fix point analysis. The former is used by the analyses when creating the results queried by the second. 4086 -
dot.rs Generating Graphviz `dot` files from our IR. 2415 -
enum_ty.rs Intermediate representation for C/C++ enumerations. 10050 -
function.rs Intermediate representation for C/C++ functions and methods. 27652 -
int.rs Intermediate representation for integral types. 3023 -
item.rs Bindgen's core intermediate representation type. 65855 -
item_kind.rs Different variants of an `Item` in our intermediate representation. 3888 -
layout.rs Intermediate representation for the physical layout of some type. 2091 -
mod.rs The ir module defines bindgen's intermediate representation. Parsing C/C++ generates the IR, while code generation outputs Rust code from the IR. 649 -
module.rs Intermediate representation for modules (AKA C++ namespaces). 2544 -
objc.rs Objective C types 11355 -
template.rs Template declaration and instantiation related things. The nomenclature surrounding templates is often confusing, so here are a few brief definitions: * "Template definition": a class/struct/alias/function definition that takes generic template parameters. For example: ```c++ template<typename T> class List<T> { // ... }; ``` * "Template instantiation": an instantiation is a use of a template with concrete template arguments. For example, `List<int>`. * "Template specialization": an alternative template definition providing a custom definition for instantiations with the matching template arguments. This C++ feature is unsupported by bindgen. For example: ```c++ template<> class List<int> { // Special layout for int lists... }; ``` 11448 -
traversal.rs Traversal of the graph of IR items and types. 14101 -
ty.rs Everything related to types in our intermediate representation. 47761 -
var.rs Intermediate representation of variables. 18469 -