Name Description Size
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