Skip to main content

WgslType

Enum WgslType 

Source
pub enum WgslType {
Show 17 variants F32, I32, U32, Bool, Void, Vec2(Box<WgslType>), Vec3(Box<WgslType>), Vec4(Box<WgslType>), Mat2x2(Box<WgslType>), Mat3x3(Box<WgslType>), Mat4x4(Box<WgslType>), Array { element: Box<WgslType>, size: Option<usize>, }, Ptr { address_space: AddressSpace, inner: Box<WgslType>, access: AccessMode, }, Atomic(Box<WgslType>), Struct(String), U64Pair, I64Pair,
}
Expand description

WGSL type representation.

Variants§

§

F32

32-bit float

§

I32

32-bit signed integer

§

U32

32-bit unsigned integer

§

Bool

Boolean

§

Void

Void (for functions with no return)

§

Vec2(Box<WgslType>)

2-component vector

§

Vec3(Box<WgslType>)

3-component vector

§

Vec4(Box<WgslType>)

4-component vector

§

Mat2x2(Box<WgslType>)

2x2 matrix

§

Mat3x3(Box<WgslType>)

3x3 matrix

§

Mat4x4(Box<WgslType>)

4x4 matrix

§

Array

Array type

Fields

§element: Box<WgslType>
§size: Option<usize>

None means runtime-sized array

§

Ptr

Pointer type (for function parameters)

Fields

§address_space: AddressSpace
§inner: Box<WgslType>
§access: AccessMode
§

Atomic(Box<WgslType>)

Atomic type

§

Struct(String)

User-defined struct

§

U64Pair

Emulated 64-bit unsigned (stored as vec2)

§

I64Pair

Emulated 64-bit signed (stored as vec2)

Implementations§

Source§

impl WgslType

Source

pub fn to_wgsl(&self) -> String

Convert to WGSL type syntax.

Source

pub fn is_emulated_64bit(&self) -> bool

Check if this type is a 64-bit emulated type.

Source

pub fn is_scalar(&self) -> bool

Check if this type is a scalar.

Source

pub fn is_vector(&self) -> bool

Check if this type is a vector.

Source

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

Get the element type for arrays and vectors.

Trait Implementations§

Source§

impl Clone for WgslType

Source§

fn clone(&self) -> WgslType

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 WgslType

Source§

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

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

impl PartialEq for WgslType

Source§

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

Source§

impl StructuralPartialEq for WgslType

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