pub struct TypeFormatter<'a, 's> { /* private fields */ }
Expand description

Allows printing function signatures, for example for use in stack traces.

Procedure symbols in PDBs usually have a name string which only includes the function name, and no function arguments. Instead, the arguments need to be obtained from the symbol’s type information. TypeFormatter handles that.

The same is true for “inlinee” functions - these are referenced by their pdb::IdIndex, and their IdData’s name string again only contains the raw function name but no arguments and also no namespace or class name. TypeFormatter handles those, too, in TypeFormatter::format_id.

Implementations

Create a TypeFormatter manually. Most consumers will want to use [ContextPdbData::make_type_formatter] instead.

However, if you interact with a PDB directly and parse some of its contents for other uses, you may want to call this method in order to avoid overhead from repeatedly parsing the same streams.

A reference to the Module list that is owned by the type formatter.

Get the size, in bytes, of the type at index.

Return a string with the function or method signature, including return type (if requested), namespace and/or class qualifiers, and arguments. If the TypeIndex is 0, then only the raw name is emitted. In that case, the name may need to go through additional demangling / “undecorating”, but this is the responsibility of the caller. This method is used for ProcedureSymbols. The module_index is the index of the module in which this procedure was found. It is necessary in order to properly resolve cross-module references.

Write out the function or method signature, including return type (if requested), namespace and/or class qualifiers, and arguments. If the TypeIndex is 0, then only the raw name is emitted. In that case, the name may need to go through additional demangling / “undecorating”, but this is the responsibility of the caller. This method is used for ProcedureSymbols. The module_index is the index of the module in which this procedure was found. It is necessary in order to properly resolve cross-module references.

Return a string with the function or method signature, including return type (if requested), namespace and/or class qualifiers, and arguments. This method is used for inlined functions. The module_index is the index of the module in which this IdIndex was found. It is necessary in order to properly resolve cross-module references.

Write out the function or method signature, including return type (if requested), namespace and/or class qualifiers, and arguments. This method is used for inlined functions. The module_index is the index of the module in which this IdIndex was found. It is necessary in order to properly resolve cross-module references.

Auto Trait Implementations

Blanket Implementations

Gets the TypeId of self. Read more
Immutably borrows from an owned value. Read more
Mutably borrows from an owned value. Read more

Returns the argument unchanged.

Calls U::from(self).

That is, this conversion is whatever the implementation of From<T> for U chooses to do.

The type returned in the event of a conversion error.
Performs the conversion.
The type returned in the event of a conversion error.
Performs the conversion.