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. |
8317 |
comment.rs |
Utilities for manipulating C/C++ comments. |
2886 |
comp.rs |
Compound types (unions and structs) in our intermediate representation. |
61284 |
context.rs |
Common context that is passed around during parsing and codegen. |
111288 |
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. |
4148 |
dot.rs |
Generating Graphviz `dot` files from our IR. |
2444 |
enum_ty.rs |
Intermediate representation for C/C++ enumerations. |
10112 |
function.rs |
Intermediate representation for C/C++ functions and methods. |
27580 |
int.rs |
Intermediate representation for integral types. |
2925 |
item.rs |
Bindgen's core intermediate representation type. |
66680 |
item_kind.rs |
Different variants of an `Item` in our intermediate representation. |
3881 |
layout.rs |
Intermediate representation for the physical layout of some type. |
4205 |
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). |
2542 |
objc.rs |
Objective C types |
11621 |
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...
};
``` |
11906 |
traversal.rs |
Traversal of the graph of IR items and types. |
14117 |
ty.rs |
Everything related to types in our intermediate representation. |
48000 |
var.rs |
Intermediate representation of variables. |
16540 |