Enum llvm_support::ty::Type[][src]

pub enum Type {
Show 21 variants Half, BFloat, Float, Double, Metadata, X86Fp80, Fp128, PpcFp128, Void, Label, X86Mmx, X86Amx, Token, Integer(IntegerType), Function(FunctionType), Pointer(PointerType), OpaquePointer(AddressSpace), Struct(StructType), Array(ArrayType), FixedVector(VectorType), ScalableVector(VectorType),
}
Expand description

A representation of LLVM’s types.

See TypeId for documentation of each variant.

Variants

Half
BFloat
Float
Double
Metadata
X86Fp80
Fp128
PpcFp128
Void
Label
X86Mmx
X86Amx
Token
Integer(IntegerType)

Tuple Fields of Integer

0: IntegerType
Function(FunctionType)

Tuple Fields of Function

0: FunctionType
Pointer(PointerType)

Tuple Fields of Pointer

0: PointerType
OpaquePointer(AddressSpace)

Tuple Fields of OpaquePointer

0: AddressSpace
Struct(StructType)

Tuple Fields of Struct

0: StructType
Array(ArrayType)

Tuple Fields of Array

0: ArrayType
FixedVector(VectorType)

Tuple Fields of FixedVector

0: VectorType
ScalableVector(VectorType)

Tuple Fields of ScalableVector

0: VectorType

Implementations

Returns whether this type is one of the floating point types.

use llvm_support::Type;

assert!(Type::BFloat.is_floating());
assert!(Type::Float.is_floating());
assert!(Type::Double.is_floating());
assert!(Type::X86Fp80.is_floating());
assert!(Type::Fp128.is_floating());
assert!(Type::PpcFp128.is_floating());
assert!(!Type::Metadata.is_floating());

Returns whether this type is a valid “pointee” type, i.e. suitable as the inner type for a pointer type.

Returns whether this type is a valid array element type, i.e. is suitable as the inner type for an array type.

Returns whether this type is a valid structure element type, i.e. is suitable as a field type within a structure type.

Returns whether this type is a valid vector element type, i.e. is suitable as the inner type for a vector type.

use llvm_support::{AddressSpace, Type};

assert!(Type::Float.is_vector_element());
assert!(Type::new_integer(32).unwrap().is_vector_element());
assert!(
    Type::new_pointer(Type::new_integer(8).unwrap(), AddressSpace::default())
    .unwrap()
    .is_vector_element()
);
assert!(!Type::Metadata.is_vector_element());

Returns whether this type is a valid argument type, i.e. is suitable as an argument within a function type.

use llvm_support::Type;

assert!(Type::Float.is_argument());
assert!(!Type::Void.is_argument());

Returns whether this type is a valid return type, i.e. is suitable as the return type within a function type.

Create a new struct type with the given fields.

Create a new integral type from the given bit width.

Create a new pointer type from the given pointee type and address space.

Create a new array type of the given size and element type.

Create a new scalable vector type of the given size and element type.

Create a new (fixed) vector type of the given size and element type.

Create a new function type of the given return type, parameter types, and variadic disposition.

Trait Implementations

Returns a copy of the value. Read more

Performs copy-assignment from source. Read more

Formats the value using the given formatter. Read more

This method tests for self and other values to be equal, and is used by ==. Read more

This method tests for !=.

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

Performs the conversion.

Performs the conversion.

The resulting type after obtaining ownership.

Creates owned data from borrowed data, usually by cloning. Read more

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

recently added

Uses borrowed data to replace owned data, usually by cloning. Read more

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.