Skip to main content

Item

Enum Item 

Source
pub enum Item<D: Dialect> {
    Scalar(Elem<D>),
    Vector(Intern<Item<D>>, usize),
    NativeVector(Elem<D>, usize),
    Atomic(Intern<Item<D>>),
    Pointer(Intern<Item<D>>, PointerClass),
    Array(Intern<Item<D>>, usize),
    DynamicArray(Intern<Item<D>>),
    Fragment(FragmentType<D>),
    Barrier(BarrierLevel),
    BarrierToken(BarrierLevel),
    TensorMap,
}

Variants§

§

Scalar(Elem<D>)

§

Vector(Intern<Item<D>>, usize)

§

NativeVector(Elem<D>, usize)

§

Atomic(Intern<Item<D>>)

§

Pointer(Intern<Item<D>>, PointerClass)

§

Array(Intern<Item<D>>, usize)

§

DynamicArray(Intern<Item<D>>)

§

Fragment(FragmentType<D>)

§

Barrier(BarrierLevel)

§

BarrierToken(BarrierLevel)

§

TensorMap

Implementations§

Source§

impl<D: Dialect> Item<D>

Source

pub fn new(inner: Elem<D>, vectorization: usize) -> Self

Source

pub fn intern(self) -> Intern<Self>

Source

pub fn value_ty(&self) -> &Item<D>

Type of the value, unwrapping pointers

Source

pub fn value_ptr(&self) -> Item<D>

Type of the pointer returned when indexing

Source

pub fn elem(&self) -> &Elem<D>

Source

pub fn with_elem(&self, elem: Elem<D>) -> Self

Source

pub fn as_scalar(&self) -> Self

Source

pub fn vectorization(&self) -> usize

Source

pub fn size(&self) -> usize

Source

pub fn can_be_optimized(&self) -> bool

Source

pub fn is_optimized(&self) -> bool

Source

pub fn optimized(&self) -> Item<D>

Source

pub fn packing_factor(&self) -> usize

Get the number of values packed into a single storage element. (i.e. f16x2 -> 2)

Source

pub fn de_optimized(&self) -> Self

Source

pub fn is_ptr(&self) -> bool

Source

pub fn is_array(&self) -> bool

Source

pub fn is_array_like(&self) -> bool

Source

pub fn unwrap_ptr(&self) -> Item<D>

Trait Implementations§

Source§

impl<D: Clone + Dialect> Clone for Item<D>

Source§

fn clone(&self) -> Item<D>

Returns a duplicate of the value. Read more
1.0.0 (const: unstable) · Source§

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

Performs copy-assignment from source. Read more
Source§

impl<D: Copy + Dialect> Copy for Item<D>

Source§

impl<D: Debug + Dialect> Debug for Item<D>

Source§

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

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

impl<D: Dialect> Display for Item<D>

Source§

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

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

impl<D: Eq + Dialect> Eq for Item<D>

Source§

impl<D: Hash + Dialect> Hash for Item<D>

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<D: PartialEq + Dialect> PartialEq for Item<D>

Source§

fn eq(&self, other: &Item<D>) -> bool

Equality operator ==. Read more
1.0.0 (const: unstable) · Source§

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

Inequality operator !=. Read more
Source§

impl<D: PartialEq + Dialect> StructuralPartialEq for Item<D>

Auto Trait Implementations§

§

impl<D> Freeze for Item<D>

§

impl<D> RefUnwindSafe for Item<D>
where D: RefUnwindSafe,

§

impl<D> Send for Item<D>

§

impl<D> Sync for Item<D>

§

impl<D> Unpin for Item<D>
where D: Unpin,

§

impl<D> UnsafeUnpin for Item<D>

§

impl<D> UnwindSafe for Item<D>

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<ST, DT> CastableFrom<ST, Initialized, Initialized> for DT
where ST: ?Sized, DT: ?Sized,

Source§

impl<ST, DT> CastableFrom<ST, Uninit, Uninit> for DT
where ST: ?Sized, DT: ?Sized,

Source§

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

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> CompilationArg for T
where T: Clone + PartialEq + Eq + Hash + Debug + Send + Sync + 'static,

Source§

fn dynamic_cast<Arg>(&self) -> Arg
where Arg: CompilationArg,

Compilation args should be the same even with different element types. However, it isn’t possible to enforce it with the type system. So, we make the compilation args serializable and dynamically cast them. Read more
Source§

impl<T> CubeComptime for T
where T: Debug + Hash + Eq + Clone + Copy,

Source§

impl<Q, K> Equivalent<K> for Q
where Q: Eq + ?Sized, K: Borrow<Q> + ?Sized,

Source§

fn equivalent(&self, key: &K) -> bool

Compare self to key and return true if they are equal.
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> IntoComptime for T

Source§

fn comptime(self) -> Self

Source§

impl<T> IntoEither for T

Source§

fn into_either(self, into_left: bool) -> Either<Self, Self>

Converts self into a Left variant of Either<Self, Self> if into_left is true. Converts self into a Right variant of Either<Self, Self> otherwise. Read more
Source§

fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
where F: FnOnce(&Self) -> bool,

Converts self into a Left variant of Either<Self, Self> if into_left(&self) returns true. Converts self into a Right variant of Either<Self, Self> otherwise. Read more
Source§

impl<T> Read<Exclusive, BecauseExclusive> for T
where T: ?Sized,

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> TuneInputs for T
where T: Clone + Send + Sync + 'static,

Source§

type At<'a> = T

The concrete input type at lifetime 'a.