pub struct ArrayLength;
Expand description
Helper type meant to be used together with the ShaderType
derive macro
This type should be interpreted as an u32
in the shader
§Problem
There are cases where the use of the WGSL function arrayLength()
might be inadequate because of its return value
-
being a minimum of 1 due to how
minBindingSize
is calculated -
possibly being higher than expected due to padding at the end of a struct or buffer being interpreted as array elements
-
representing the capacity of the array for use cases that require oversized buffers
§Solution
Using this type on a field of a struct with the ShaderType
derive macro will automatically:
Trait Implementations§
Source§impl Clone for ArrayLength
impl Clone for ArrayLength
Source§fn clone(&self) -> ArrayLength
fn clone(&self) -> ArrayLength
Returns a copy of the value. Read more
1.0.0 · Source§fn clone_from(&mut self, source: &Self)
fn clone_from(&mut self, source: &Self)
Performs copy-assignment from
source
. Read moreSource§impl CreateFrom for ArrayLength
impl CreateFrom for ArrayLength
fn create_from<B: BufferRef>(reader: &mut Reader<B>) -> Self
Source§impl Debug for ArrayLength
impl Debug for ArrayLength
Source§impl Default for ArrayLength
impl Default for ArrayLength
Source§fn default() -> ArrayLength
fn default() -> ArrayLength
Returns the “default value” for a type. Read more
Source§impl Ord for ArrayLength
impl Ord for ArrayLength
Source§fn cmp(&self, other: &ArrayLength) -> Ordering
fn cmp(&self, other: &ArrayLength) -> Ordering
1.21.0 · Source§fn max(self, other: Self) -> Selfwhere
Self: Sized,
fn max(self, other: Self) -> Selfwhere
Self: Sized,
Compares and returns the maximum of two values. Read more
Source§impl PartialEq for ArrayLength
impl PartialEq for ArrayLength
Source§impl PartialOrd for ArrayLength
impl PartialOrd for ArrayLength
Source§impl ReadFrom for ArrayLength
impl ReadFrom for ArrayLength
Source§impl ShaderSize for ArrayLength
impl ShaderSize for ArrayLength
Source§const SHADER_SIZE: NonZeroU64 = _
const SHADER_SIZE: NonZeroU64 = _
Represents WGSL Size (equivalent to
ShaderType::min_size
)Source§impl ShaderType for ArrayLength
impl ShaderType for ArrayLength
Source§fn min_size() -> NonZeroU64
fn min_size() -> NonZeroU64
Source§fn size(&self) -> NonZeroU64
fn size(&self) -> NonZeroU64
Returns the size of
Self
at runtime Read moreSource§fn assert_uniform_compat()
fn assert_uniform_compat()
Asserts that
Self
meets the requirements of the
uniform address space restrictions on stored values and the
uniform address space layout constraints Read moreSource§impl WriteInto for ArrayLength
impl WriteInto for ArrayLength
fn write_into<B: BufferMut>(&self, writer: &mut Writer<B>)
impl Copy for ArrayLength
impl Eq for ArrayLength
impl StructuralPartialEq for ArrayLength
Auto Trait Implementations§
impl Freeze for ArrayLength
impl RefUnwindSafe for ArrayLength
impl Send for ArrayLength
impl Sync for ArrayLength
impl Unpin for ArrayLength
impl UnwindSafe for ArrayLength
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
Source§impl<T> CloneToUninit for Twhere
T: Clone,
impl<T> CloneToUninit for Twhere
T: Clone,
Source§unsafe fn clone_to_uninit(&self, dst: *mut T)
unsafe fn clone_to_uninit(&self, dst: *mut T)
🔬This is a nightly-only experimental API. (
clone_to_uninit
)