Skip to main content

IrType

Enum IrType 

Source
pub enum IrType {
    Void,
    Scalar(ScalarType),
    Vector(VectorType),
    Ptr(Box<IrType>),
    Array(Box<IrType>, usize),
    Slice(Box<IrType>),
    Struct(StructType),
    Function(FunctionType),
}
Expand description

IR type.

Variants§

§

Void

Void type (for functions with no return).

§

Scalar(ScalarType)

Scalar type.

§

Vector(VectorType)

Vector type.

§

Ptr(Box<IrType>)

Pointer type.

§

Array(Box<IrType>, usize)

Array type with static size.

§

Slice(Box<IrType>)

Slice type (runtime-sized array).

§

Struct(StructType)

Struct type with named fields.

§

Function(FunctionType)

Function type.

Implementations§

Source§

impl IrType

Source

pub const BOOL: IrType

Boolean type.

Source

pub const I32: IrType

32-bit signed integer.

Source

pub const I64: IrType

64-bit signed integer.

Source

pub const U32: IrType

32-bit unsigned integer.

Source

pub const U64: IrType

64-bit unsigned integer.

Source

pub const F32: IrType

32-bit float.

Source

pub const F64: IrType

64-bit float.

Source

pub fn ptr(inner: IrType) -> Self

Create a pointer type.

Source

pub fn array(inner: IrType, size: usize) -> Self

Create an array type.

Source

pub fn slice(inner: IrType) -> Self

Create a slice type.

Source

pub fn size_bytes(&self) -> Option<usize>

Get size in bytes (None for unsized types).

Source

pub fn is_ptr(&self) -> bool

Check if this is a pointer type.

Source

pub fn is_scalar(&self) -> bool

Check if this is a scalar type.

Source

pub fn is_numeric(&self) -> bool

Check if this is a numeric type.

Source

pub fn element_type(&self) -> Option<&IrType>

Get the element type for pointers, arrays, and slices.

Trait Implementations§

Source§

impl Clone for IrType

Source§

fn clone(&self) -> IrType

Returns a duplicate of the value. Read more
1.0.0 · Source§

fn clone_from(&mut self, source: &Self)

Performs copy-assignment from source. Read more
Source§

impl Debug for IrType

Source§

fn fmt(&self, f: &mut Formatter<'_>) -> Result

Formats the value using the given formatter. Read more
Source§

impl Display for IrType

Source§

fn fmt(&self, f: &mut Formatter<'_>) -> Result

Formats the value using the given formatter. Read more
Source§

impl Hash for IrType

Source§

fn hash<__H: Hasher>(&self, state: &mut __H)

Feeds this value into the given Hasher. Read more
1.3.0 · Source§

fn hash_slice<H>(data: &[Self], state: &mut H)
where H: Hasher, Self: Sized,

Feeds a slice of this type into the given Hasher. Read more
Source§

impl PartialEq for IrType

Source§

fn eq(&self, other: &IrType) -> bool

Tests for self and other values to be equal, and is used by ==.
1.0.0 · Source§

fn ne(&self, other: &Rhs) -> bool

Tests for !=. The default implementation is almost always sufficient, and should not be overridden without very good reason.
Source§

impl Eq for IrType

Source§

impl StructuralPartialEq for IrType

Auto Trait Implementations§

Blanket Implementations§

Source§

impl<T> Any for T
where T: 'static + ?Sized,

Source§

fn type_id(&self) -> TypeId

Gets the TypeId of self. Read more
Source§

impl<T> Borrow<T> for T
where T: ?Sized,

Source§

fn borrow(&self) -> &T

Immutably borrows from an owned value. Read more
Source§

impl<T> BorrowMut<T> for T
where T: ?Sized,

Source§

fn borrow_mut(&mut self) -> &mut T

Mutably borrows from an owned value. Read more
Source§

impl<T> CloneToUninit for T
where T: Clone,

Source§

unsafe fn clone_to_uninit(&self, dest: *mut u8)

🔬This is a nightly-only experimental API. (clone_to_uninit)
Performs copy-assignment from self to dest. Read more
Source§

impl<T> From<T> for T

Source§

fn from(t: T) -> T

Returns the argument unchanged.

Source§

impl<T> Instrument for T

Source§

fn instrument(self, span: Span) -> Instrumented<Self>

Instruments this type with the provided Span, returning an Instrumented wrapper. Read more
Source§

fn in_current_span(self) -> Instrumented<Self>

Instruments this type with the current Span, returning an Instrumented wrapper. Read more
Source§

impl<T, U> Into<U> for T
where U: From<T>,

Source§

fn into(self) -> U

Calls U::from(self).

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

Source§

impl<T> ToOwned for T
where T: Clone,

Source§

type Owned = T

The resulting type after obtaining ownership.
Source§

fn to_owned(&self) -> T

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

fn clone_into(&self, target: &mut T)

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

impl<T> ToString for T
where T: Display + ?Sized,

Source§

fn to_string(&self) -> String

Converts the given value to a String. Read more
Source§

impl<T, U> TryFrom<U> for T
where U: Into<T>,

Source§

type Error = Infallible

The type returned in the event of a conversion error.
Source§

fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>

Performs the conversion.
Source§

impl<T, U> TryInto<U> for T
where U: TryFrom<T>,

Source§

type Error = <U as TryFrom<T>>::Error

The type returned in the event of a conversion error.
Source§

fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>

Performs the conversion.
Source§

impl<T> WithSubscriber for T

Source§

fn with_subscriber<S>(self, subscriber: S) -> WithDispatch<Self>
where S: Into<Dispatch>,

Attaches the provided Subscriber to this type, returning a WithDispatch wrapper. Read more
Source§

fn with_current_subscriber(self) -> WithDispatch<Self>

Attaches the current default Subscriber to this type, returning a WithDispatch wrapper. Read more