pub struct SliceLayout<C: Coordinates> { /* private fields */ }Expand description
A layout containing a sub-slice of the inner layout.
Implementations§
Source§impl<C: Coordinates> SliceLayout<C>
 
impl<C: Coordinates> SliceLayout<C>
Sourcepub fn new(start: C, size: C, checked: bool) -> Self
 
pub fn new(start: C, size: C, checked: bool) -> Self
Create a new slice layout.
checked determines whether bounds should be checked, or simply treated as always in bounds.
pub fn __expand_new( scope: &mut Scope, start: <C as CubeType>::ExpandType, size: <C as CubeType>::ExpandType, checked: bool, ) -> <Self as CubeType>::ExpandType
Trait Implementations§
Source§impl<C: Coordinates> CubeType for SliceLayout<C>
 
impl<C: Coordinates> CubeType for SliceLayout<C>
type ExpandType = SliceLayoutExpand<C>
Source§fn into_mut(scope: &mut Scope, expand: Self::ExpandType) -> Self::ExpandType
 
fn into_mut(scope: &mut Scope, expand: Self::ExpandType) -> Self::ExpandType
Wrapper around the init method, necessary to type inference.
Source§impl<C: Coordinates> Layout for SliceLayout<C>
 
impl<C: Coordinates> Layout for SliceLayout<C>
Source§type Coordinates = C
 
type Coordinates = C
The coordinate type used by the conceptual tensor represented by this layout, i.e.
(u32, u32, u32) for a fixed-rank 3D tensor.
This does not have to match the rank of the underlying storage (if applicable).
It’s only how the tensor is interpreted (viewed) by the code.Source§type SourceCoordinates = C
 
type SourceCoordinates = C
The coordinate type used by the inner storage wrapped in this layout, i.e. 
u32 for
Array, or (u32, u32) for a 2D view.Source§fn shape(&self) -> Self::Coordinates
 
fn shape(&self) -> Self::Coordinates
The shape of the conceptual tensor represented by this layout. Not necessarily the extent
of the underlying storage, but only this view of it.
Source§fn to_source_pos(&self, pos: Self::Coordinates) -> Self::SourceCoordinates
 
fn to_source_pos(&self, pos: Self::Coordinates) -> Self::SourceCoordinates
Transform a set of n-dimensional coordinates to a source coordinate space.
It is recommended to use absolute positions here, and handle the translation into lines
at the lowest level (global memory layout).
fn is_in_bounds(&self, pos: Self::Coordinates) -> bool
Source§fn to_source_pos_checked(
    &self,
    pos: Self::Coordinates,
) -> (Self::SourceCoordinates, bool)
 
fn to_source_pos_checked( &self, pos: Self::Coordinates, ) -> (Self::SourceCoordinates, bool)
Transform a set of n-dimensional coordinates to an offset into the underlying storage,
and return whether the position is in bounds of this layout.
See also Layout::to_source_pos
fn __expand_to_source_pos( scope: &mut Scope, this: <Self as CubeType>::ExpandType, pos: <Self::Coordinates as CubeType>::ExpandType, ) -> <Self::SourceCoordinates as CubeType>::ExpandType
fn __expand_to_source_pos_checked( scope: &mut Scope, this: <Self as CubeType>::ExpandType, pos: <Self::Coordinates as CubeType>::ExpandType, ) -> <(Self::SourceCoordinates, bool) as CubeType>::ExpandType
fn __expand_shape( scope: &mut Scope, this: <Self as CubeType>::ExpandType, ) -> <Self::Coordinates as CubeType>::ExpandType
fn __expand_is_in_bounds( scope: &mut Scope, this: <Self as CubeType>::ExpandType, pos: <Self::Coordinates as CubeType>::ExpandType, ) -> <bool as CubeType>::ExpandType
Auto Trait Implementations§
impl<C> Freeze for SliceLayout<C>where
    C: Freeze,
impl<C> RefUnwindSafe for SliceLayout<C>where
    C: RefUnwindSafe,
impl<C> Send for SliceLayout<C>where
    C: Send,
impl<C> Sync for SliceLayout<C>where
    C: Sync,
impl<C> Unpin for SliceLayout<C>where
    C: Unpin,
impl<C> UnwindSafe for SliceLayout<C>where
    C: UnwindSafe,
Blanket Implementations§
Source§impl<T> BorrowMut<T> for Twhere
    T: ?Sized,
 
impl<T> BorrowMut<T> for Twhere
    T: ?Sized,
Source§fn borrow_mut(&mut self) -> &mut T
 
fn borrow_mut(&mut self) -> &mut T
Mutably borrows from an owned value. Read more