pub trait ViewOperations<T: CubePrimitive, C: Coordinates>: Lined + CubeType<ExpandType: ViewOperationsExpand<T, C>> {
Show 18 methods
// Provided methods
fn read(&self, pos: C) -> T { ... }
fn read_checked(&self, pos: C) -> T { ... }
fn read_masked(&self, pos: C, value: T) -> T { ... }
fn read_unchecked(&self, pos: C) -> T { ... }
fn to_linear_slice(&self, pos: C, size: C) -> Slice<T, ReadOnly> { ... }
fn as_tensor_map(&self) -> CubeOption<TensorMap<T>> { ... }
fn tensor_map_load(
&self,
barrier: &Barrier,
shared_memory: &mut Slice<T, ReadWrite>,
pos: C,
) { ... }
fn shape(&self) -> C { ... }
fn is_in_bounds(&self, pos: C) -> bool { ... }
fn __expand_read(
scope: &mut Scope,
this: <Self as CubeType>::ExpandType,
pos: <C as CubeType>::ExpandType,
) -> <T as CubeType>::ExpandType { ... }
fn __expand_read_checked(
scope: &mut Scope,
this: <Self as CubeType>::ExpandType,
pos: <C as CubeType>::ExpandType,
) -> <T as CubeType>::ExpandType { ... }
fn __expand_read_masked(
scope: &mut Scope,
this: <Self as CubeType>::ExpandType,
pos: <C as CubeType>::ExpandType,
value: <T as CubeType>::ExpandType,
) -> <T as CubeType>::ExpandType { ... }
fn __expand_read_unchecked(
scope: &mut Scope,
this: <Self as CubeType>::ExpandType,
pos: <C as CubeType>::ExpandType,
) -> <T as CubeType>::ExpandType { ... }
fn __expand_to_linear_slice(
scope: &mut Scope,
this: <Self as CubeType>::ExpandType,
pos: <C as CubeType>::ExpandType,
size: <C as CubeType>::ExpandType,
) -> <Slice<T, ReadOnly> as CubeType>::ExpandType { ... }
fn __expand_as_tensor_map(
scope: &mut Scope,
this: <Self as CubeType>::ExpandType,
) -> <CubeOption<TensorMap<T>> as CubeType>::ExpandType { ... }
fn __expand_tensor_map_load(
scope: &mut Scope,
this: <Self as CubeType>::ExpandType,
barrier: <Barrier as CubeType>::ExpandType,
shared_memory: <Slice<T, ReadWrite> as CubeType>::ExpandType,
pos: <C as CubeType>::ExpandType,
) -> <() as CubeType>::ExpandType { ... }
fn __expand_shape(
scope: &mut Scope,
this: <Self as CubeType>::ExpandType,
) -> <C as CubeType>::ExpandType { ... }
fn __expand_is_in_bounds(
scope: &mut Scope,
this: <Self as CubeType>::ExpandType,
pos: <C as CubeType>::ExpandType,
) -> <bool as CubeType>::ExpandType { ... }
}Expand description
Type from which we can read values in cube functions. For a mutable version, see ListMut.
Provided Methods§
fn read(&self, pos: C) -> T
fn read_checked(&self, pos: C) -> T
fn read_masked(&self, pos: C, value: T) -> T
fn read_unchecked(&self, pos: C) -> T
Sourcefn to_linear_slice(&self, pos: C, size: C) -> Slice<T, ReadOnly>
fn to_linear_slice(&self, pos: C, size: C) -> Slice<T, ReadOnly>
Create a slice starting from pos, with size.
The layout handles translation into concrete indices.
fn as_tensor_map(&self) -> CubeOption<TensorMap<T>>
Sourcefn tensor_map_load(
&self,
barrier: &Barrier,
shared_memory: &mut Slice<T, ReadWrite>,
pos: C,
)
fn tensor_map_load( &self, barrier: &Barrier, shared_memory: &mut Slice<T, ReadWrite>, pos: C, )
.Execute a TMA load into shared memory, if the underlying storage supports it. Panics if it’s unsupported.
fn shape(&self) -> C
fn is_in_bounds(&self, pos: C) -> bool
fn __expand_read( scope: &mut Scope, this: <Self as CubeType>::ExpandType, pos: <C as CubeType>::ExpandType, ) -> <T as CubeType>::ExpandType
fn __expand_read_checked( scope: &mut Scope, this: <Self as CubeType>::ExpandType, pos: <C as CubeType>::ExpandType, ) -> <T as CubeType>::ExpandType
fn __expand_read_masked( scope: &mut Scope, this: <Self as CubeType>::ExpandType, pos: <C as CubeType>::ExpandType, value: <T as CubeType>::ExpandType, ) -> <T as CubeType>::ExpandType
fn __expand_read_unchecked( scope: &mut Scope, this: <Self as CubeType>::ExpandType, pos: <C as CubeType>::ExpandType, ) -> <T as CubeType>::ExpandType
fn __expand_to_linear_slice( scope: &mut Scope, this: <Self as CubeType>::ExpandType, pos: <C as CubeType>::ExpandType, size: <C as CubeType>::ExpandType, ) -> <Slice<T, ReadOnly> as CubeType>::ExpandType
fn __expand_as_tensor_map( scope: &mut Scope, this: <Self as CubeType>::ExpandType, ) -> <CubeOption<TensorMap<T>> as CubeType>::ExpandType
fn __expand_tensor_map_load( scope: &mut Scope, this: <Self as CubeType>::ExpandType, barrier: <Barrier as CubeType>::ExpandType, shared_memory: <Slice<T, ReadWrite> as CubeType>::ExpandType, pos: <C as CubeType>::ExpandType, ) -> <() as CubeType>::ExpandType
fn __expand_shape( scope: &mut Scope, this: <Self as CubeType>::ExpandType, ) -> <C as CubeType>::ExpandType
fn __expand_is_in_bounds( scope: &mut Scope, this: <Self as CubeType>::ExpandType, pos: <C as CubeType>::ExpandType, ) -> <bool as CubeType>::ExpandType
Dyn Compatibility§
This trait is not dyn compatible.
In older versions of Rust, dyn compatibility was called "object safety", so this trait is not object safe.