Module rustc::ty::layout [] [src]

🔬 This is a nightly-only experimental API. (rustc_private)

this crate is being loaded from the sysroot, an unstable location; did you mean to load this crate from crates.io via Cargo.toml instead?

Reexports

pub use self::Integer::*;
pub use self::Primitive::*;

Structs

Align [
Experimental
]

Alignment of a type in bytes, both ABI-mandated and preferred. Each field is a power of two, giving the alignment a maximum value of 228 - 1, which is limited by LLVM to a i32, with a maximum capacity of 231 - 1 or 2147483647.

LayoutDetails [
Experimental
]
Scalar [
Experimental
]

Information about one scalar component of a Rust type.

Size [
Experimental
]

Size of a type in bytes.

TargetDataLayout [
Experimental
]

Parsed Data layout for a target, which contains everything needed to compute layouts.

TyLayout [
Experimental
]

The details of the layout of a type, alongside the type itself. Provides various type traversal APIs (e.g. recursing into fields).

Enums

Abi [
Experimental
]

Describes how values of the type are passed by target ABIs, in terms of categories of C types there are ABI rules for.

Endian [
Experimental
]

Endianness of the target, which must match cfg(target-endian).

FieldPlacement [
Experimental
]

Describes how the fields of a type are located in memory.

Integer [
Experimental
]

Integers, also used for enum discriminants.

LayoutError [
Experimental
]
Primitive [
Experimental
]

Fundamental unit of memory access and layout.

SizeSkeleton [
Experimental
]

Type size "skeleton", i.e. the only information determining a type's size. While this is conservative, (aside from constant sizes, only pointers, newtypes thereof and null pointer optimized enums are allowed), it is enough to statically check common usecases of transmute.

Variants [
Experimental
]

Constants

FAT_PTR_ADDR [
Experimental
]

The first half of a fat pointer. - For a trait object, this is the address of the box. - For a slice, this is the base address.

FAT_PTR_EXTRA [
Experimental
]

The second half of a fat pointer. - For a trait object, this is the address of the vtable. - For a slice, this is the length.

Traits

HasDataLayout [
Experimental
]
HasTyCtxt [
Experimental
]
LayoutOf [
Experimental
]
MaybeResult [
Experimental
]

Functions

provide [
Experimental
]