[][src]Module abi_stable::type_layout

Types for modeling the layout of a datatype

Re-exports

pub use self::tagging::Tag;

Modules

tagging

Tag is a dynamically typed data structure used to encode extra properties about a type in its layout constant.

Structs

CompTLFunction

Equivalent to TLFunction,in which every field is a range into a TLFunctions.

Field1to1

Properties that are associated with all fields.

FieldIndex

An index composed of the (variant,field_position) pair.

FullType

The typename and generics of the type this layout is associated to, used for printing types.

GenericParams

Represents all the generic parameters of a type.

GetVariantNames

An iterator that yields the names of an enum's variants.

IncompatibleWithNonExhaustive

An error produced when checking that the Storage of a nonexhaustive enum is compatible with the enum.

IsExhaustive

Whether this enum is exhaustive,if it is,it can add variants in minor versions.

ItemInfo

Information about where a type was declared.

SliceAndFieldIndices

A slice of T,and a slice of ranges into the first slice,associating each range with a field.

StartLen

The start and length of a slice into TLFunctions.

TLEnum

The layout of an enum.

TLField

The layout of a field.

TLFields

The layout of a field.

TLFieldsIterator

An iterator over all the fields in a type definition.

TLFunction

A function pointer in a field.

TLFunctionRange

A slice of functions from a TLFunctions.

TLFunctions

A function pointer in a field.

TLNonExhaustive

Properties exclusive to nonexhaustive enums.

TLPrefixType

The definition of vtables and modules that can be extended in minor versions.

TypeLayout

The layout of a type, also includes metadata about where the type was defined.

TypeLayoutParams

The parameters for TypeLayout::from_params.

WithFieldIndex

A pair of (FieldIndex,T).

Enums

DiscriminantRepr

How the discriminant of an enum is represented.

FieldAccessor

Whether a field is accessible,and how it is accessed.

LifetimeIndex

Which lifetime is being referenced by a field. Allows lifetimes to be renamed,so long as the "same" lifetime is being referenced.

ModPath

A module path.

ReprAttr

The repr(..) attribute used on a type.

TLData

What kind of type this is.struct/enum/etc.

TLDataDiscriminant

A discriminant-only version of TLData.

TLDiscriminant

The discriminant of an enum variant.

TLDiscriminants

The discriminant of an enum variant.

TLFOSIter

A iterator over all the fields of a type definition.

TLFieldOrFunction

Either a TLField or a TLFunction.

TLFieldsOrSlice

Either a TLFields or a static slice of TLField.

TLPrimitive

Types defined in the compiler