Skip to main content

SpirVType

Enum SpirVType 

Source
pub enum SpirVType {
Show 14 variants Void, Bool, Int { width: u32, signed: bool, }, Float { width: u32, }, Vector { element: Box<SpirVType>, count: u32, }, Matrix { column_type: Box<SpirVType>, column_count: u32, }, Array { element: Box<SpirVType>, length: u32, }, RuntimeArray(Box<SpirVType>), Struct(Vec<SpirVType>), Pointer { storage_class: StorageClass, pointee: Box<SpirVType>, }, Function { return_type: Box<SpirVType>, param_types: Vec<SpirVType>, }, Image { sampled_type: Box<SpirVType>, dim: ImageDim, depth: u32, arrayed: u32, ms: u32, sampled: u32, format: ImageFormat, }, Sampler, SampledImage(Box<SpirVType>),
}
Expand description

SPIR-V type system.

Each type variant corresponds to one or more SPIR-V OpType* instructions.

Variants§

§

Void

OpTypeVoid — no value

§

Bool

OpTypeBool — true/false

§

Int

OpTypeInt — signed/unsigned integer, width in bits

Fields

§width: u32

Bit width: 8, 16, 32, or 64

§signed: bool

1 = signed, 0 = unsigned

§

Float

OpTypeFloat — IEEE floating-point, width in bits (16, 32, 64)

Fields

§width: u32

Bit width: 16, 32, or 64

§

Vector

OpTypeVector — fixed-length homogeneous vector

Fields

§element: Box<SpirVType>

Element type (must be scalar numeric)

§count: u32

Number of components (2, 3, or 4)

§

Matrix

OpTypeMatrix — column-major matrix of vectors

Fields

§column_type: Box<SpirVType>

Column type (must be a vector)

§column_count: u32

Number of columns

§

Array

OpTypeArray — fixed-length array

Fields

§element: Box<SpirVType>

Element type

§length: u32

Length (must be a constant)

§

RuntimeArray(Box<SpirVType>)

OpTypeRuntimeArray — runtime-length array (descriptor binding)

§

Struct(Vec<SpirVType>)

OpTypeStruct — aggregate of named/indexed members

§

Pointer

OpTypePointer — typed pointer with storage class

Fields

§storage_class: StorageClass

Storage class (e.g., Uniform, Input, Output, Function)

§pointee: Box<SpirVType>

Pointed-to type

§

Function

OpTypeFunction — function signature

Fields

§return_type: Box<SpirVType>

Return type

§param_types: Vec<SpirVType>

Parameter types

§

Image

OpTypeImage — image type for sampling/storage

Fields

§sampled_type: Box<SpirVType>

Sampled element type

§dim: ImageDim

Image dimensionality

§depth: u32

Depth (0=no depth, 1=depth, 2=unknown)

§arrayed: u32

Arrayed (0=no, 1=yes)

§ms: u32

Multisampled (0=no, 1=yes)

§sampled: u32

Sampled (1=sampled, 2=storage, 0=unknown)

§format: ImageFormat

Image format

§

Sampler

OpTypeSampler — opaque sampler type

§

SampledImage(Box<SpirVType>)

OpTypeSampledImage — combined image+sampler

Trait Implementations§

Source§

impl Clone for SpirVType

Source§

fn clone(&self) -> SpirVType

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 SpirVType

Source§

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

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

impl Display for SpirVType

Source§

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

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

impl PartialEq for SpirVType

Source§

fn eq(&self, other: &SpirVType) -> 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 StructuralPartialEq for SpirVType

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, 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.