pub struct VectorTile { /* private fields */ }Expand description
The values one vector load brings, as a tile: its extents, finest first, one per axis.
// a plain row-major buffer, four wide
VectorTile::new(&[], N, 4) // [(N, 4)]
// NVFP4 values: a word of 8 along K, 2 words along K, 2 columns; 32 values a load
VectorTile::new(&[(K, 8), (K, 2), (N, 2)], N, 32) // [(K, 16), (N, 2)]Implementations§
Source§impl VectorTile
impl VectorTile
Sourcepub fn new(
stored: &[(Axis, usize)],
innermost: Axis,
values: usize,
) -> Result<Self, TileMisfit>
pub fn new( stored: &[(Axis, usize)], innermost: Axis, values: usize, ) -> Result<Self, TileMisfit>
The tile a load of values values covers over a buffer stored in stored tiles, finest
first (TileSpec::stored_tiles): its finest tiles, fused
where one axis continues, until they hold values. Nothing stated, a run of values
along innermost.
§Errors
A load that would cut a stored tile, one wider than every stored tile together, or one whose axis comes back after another, which is no longer one extent per axis.
Source§impl VectorTile
load.count(&space), load.start(line, &space), load.index(&coords, &space): written out by
hand, since a compile-time value has no kernel-side twin for #[cube] to hang a method on.
impl VectorTile
load.count(&space), load.start(line, &space), load.index(&coords, &space): written out by
hand, since a compile-time value has no kernel-side twin for #[cube] to hang a method on.
Sourcepub fn start(&self, line: u32, space: &Space) -> Coords<u32>
pub fn start(&self, line: u32, space: &Space) -> Coords<u32>
The first value of the line-th load of a window spanning space, one coordinate per
axis, the loads counted with the last axis fastest.
Sourcepub fn index(&self, coords: &Coords<u32>, space: &Space) -> CoordsDyn
pub fn index(&self, coords: &Coords<u32>, space: &Space) -> CoordsDyn
Where the load starting at coords sits in a view of a window spanning space read in
these loads: each coordinate divided by the load’s extent along its axis.
pub fn __expand_count_method( &self, scope: &Scope, space: &Space, ) -> NativeExpand<u32>
pub fn __expand_start_method( &self, scope: &Scope, line: NativeExpand<u32>, space: &Space, ) -> <Coords<u32> as CubeType>::ExpandType
pub fn __expand_index_method( &self, scope: &Scope, coords: &<Coords<u32> as CubeType>::ExpandType, space: &Space, ) -> <CoordsDyn as CubeType>::ExpandType
Trait Implementations§
Source§impl AsMutExpand for VectorTile
impl AsMutExpand for VectorTile
fn __expand_ref_mut_method(&mut self, _scope: &Scope) -> &mut Self
fn __expand_as_mut_method(&mut self, scope: &Scope) -> &mut T
Source§impl AsRefExpand for VectorTile
impl AsRefExpand for VectorTile
fn __expand_ref_method(&self, _scope: &Scope) -> &Self
fn __expand_as_ref_method(&self, scope: &Scope) -> &T
Source§impl Clone for VectorTile
impl Clone for VectorTile
Source§impl CubeDebug for VectorTile
impl CubeDebug for VectorTile
Source§fn set_debug_name(&self, scope: &Scope, name: &'static str)
fn set_debug_name(&self, scope: &Scope, name: &'static str)
Source§impl CubeType for VectorTile
impl CubeType for VectorTile
type ExpandType = VectorTile
Source§impl Debug for VectorTile
impl Debug for VectorTile
impl Eq for VectorTile
Source§impl ExpandTypeClone for VectorTile
impl ExpandTypeClone for VectorTile
Source§fn clone_unchecked(&self) -> Self
fn clone_unchecked(&self) -> Self
Clone semantics and should only be used for the
conceptual expand values, never real data. Using two values in the same branch is undefined
behaviour.Source§impl Hash for VectorTile
impl Hash for VectorTile
Source§impl IntoExpand for VectorTile
impl IntoExpand for VectorTile
type Expand = VectorTile
fn into_expand(self, _scope: &Scope) -> Self
Source§impl IntoMut for VectorTile
impl IntoMut for VectorTile
Source§impl PartialEq for VectorTile
impl PartialEq for VectorTile
impl StructuralPartialEq for VectorTile
Auto Trait Implementations§
impl Freeze for VectorTile
impl RefUnwindSafe for VectorTile
impl Send for VectorTile
impl Sync for VectorTile
impl Unpin for VectorTile
impl UnsafeUnpin for VectorTile
impl UnwindSafe for VectorTile
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
impl<ST, DT> CastableFrom<ST, Initialized, Initialized> for DT
impl<ST, DT> CastableFrom<ST, Uninit, Uninit> for DT
Source§impl<T> CloneExpand for Twhere
T: Clone,
impl<T> CloneExpand for Twhere
T: Clone,
fn __expand_clone_method(&self, _: &Scope) -> T
Source§impl<T> CloneToUninit for Twhere
T: Clone,
impl<T> CloneToUninit for Twhere
T: Clone,
Source§impl<T> CompilationArg for T
impl<T> CompilationArg for T
Source§fn dynamic_cast<Arg>(&self) -> Argwhere
Arg: CompilationArg,
fn dynamic_cast<Arg>(&self) -> Argwhere
Arg: CompilationArg,
Source§impl<T> Downcast for Twhere
T: Any,
impl<T> Downcast for Twhere
T: Any,
Source§fn into_any(self: Box<T>) -> Box<dyn Any>
fn into_any(self: Box<T>) -> Box<dyn Any>
Box<dyn Trait> (where Trait: Downcast) to Box<dyn Any>, which can then be
downcast into Box<dyn ConcreteType> where ConcreteType implements Trait.Source§fn into_any_rc(self: Rc<T>) -> Rc<dyn Any>
fn into_any_rc(self: Rc<T>) -> Rc<dyn Any>
Rc<Trait> (where Trait: Downcast) to Rc<Any>, which can then be further
downcast into Rc<ConcreteType> where ConcreteType implements Trait.Source§fn as_any(&self) -> &(dyn Any + 'static)
fn as_any(&self) -> &(dyn Any + 'static)
&Trait (where Trait: Downcast) to &Any. This is needed since Rust cannot
generate &Any’s vtable from &Trait’s.Source§fn as_any_mut(&mut self) -> &mut (dyn Any + 'static)
fn as_any_mut(&mut self) -> &mut (dyn Any + 'static)
&mut Trait (where Trait: Downcast) to &Any. This is needed since Rust cannot
generate &mut Any’s vtable from &mut Trait’s.Source§impl<T> DowncastSend for T
impl<T> DowncastSend for T
Source§impl<T> DowncastSync for T
impl<T> DowncastSync for T
Source§impl<Q, K> Equivalent<K> for Q
impl<Q, K> Equivalent<K> for Q
Source§fn equivalent(&self, key: &K) -> bool
fn equivalent(&self, key: &K) -> bool
key and return true if they are equal.Source§impl<K, Q> Equivalent<Q> for K
impl<K, Q> Equivalent<Q> for K
Source§fn equivalent(&self, key: &Q) -> bool
fn equivalent(&self, key: &Q) -> bool
key and return true if they are equal.impl<T> ErasedDestructor for Twhere
T: 'static,
Source§impl<T> Instrument for T
impl<T> Instrument for T
Source§fn instrument(self, span: Span) -> Instrumented<Self> ⓘ
fn instrument(self, span: Span) -> Instrumented<Self> ⓘ
Source§fn in_current_span(self) -> Instrumented<Self> ⓘ
fn in_current_span(self) -> Instrumented<Self> ⓘ
Source§impl<T> IntoEither for T
impl<T> IntoEither for T
Source§fn into_either(self, into_left: bool) -> Either<Self, Self> ⓘ
fn into_either(self, into_left: bool) -> Either<Self, Self> ⓘ
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 moreSource§fn into_either_with<F>(self, into_left: F) -> Either<Self, Self> ⓘ
fn into_either_with<F>(self, into_left: F) -> Either<Self, Self> ⓘ
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