Enum naga::front::wgsl::lower::Typed

source ·
enum Typed<T> {
    Reference(T),
    Plain(T),
}
Expand description

WGSL type annotations on expressions, types, values, etc.

Naga and WGSL types are very close, but Naga lacks WGSL’s ref types, which we need to know to apply the Load Rule. This enum carries some WGSL or Naga datum along with enough information to determine its corresponding WGSL type.

The T type parameter can be any expression-like thing:

  • Typed<Handle<crate::Type>> can represent a full WGSL type. For example, given some Naga Pointer type ptr, a WGSL reference type is a Typed::Reference(ptr) whereas a WGSL pointer type is a Typed::Plain(ptr).

  • Typed<crate::Expression> or Typed<Handle<crate::Expression>> can represent references similarly.

Use the map and try_map methods to convert from one expression representation to another.

Variants§

§

Reference(T)

A WGSL reference.

§

Plain(T)

A WGSL plain type.

Implementations§

source§

impl<T> Typed<T>

source

fn map<U>(self, f: impl FnMut(T) -> U) -> Typed<U>

source

fn try_map<U, E>(self, f: impl FnMut(T) -> Result<U, E>) -> Result<Typed<U>, E>

Trait Implementations§

source§

impl<T: Clone> Clone for Typed<T>

source§

fn clone(&self) -> Typed<T>

Returns a copy 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<T: Debug> Debug for Typed<T>

source§

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

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

impl<T: Copy> Copy for Typed<T>

Auto Trait Implementations§

§

impl<T> Freeze for Typed<T>
where T: Freeze,

§

impl<T> RefUnwindSafe for Typed<T>
where T: RefUnwindSafe,

§

impl<T> Send for Typed<T>
where T: Send,

§

impl<T> Sync for Typed<T>
where T: Sync,

§

impl<T> Unpin for Typed<T>
where T: Unpin,

§

impl<T> UnwindSafe for Typed<T>
where T: UnwindSafe,

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

§

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

§

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

§

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.