Skip to main content

DataType

Enum DataType 

Source
pub enum DataType {
Show 13 variants U32, I32, U64, Vec2U32, Vec4U32, Bool, Bytes, Array { element_size: usize, }, F16, BF16, F32, F64, Tensor,
}
Expand description

Canonical data types supported by the vyre IR frozen data contract.

Integer-first by design. GPU floating-point is nondeterministic across vendors through different rounding, fused multiply-add, and subnormal handling. Integer arithmetic is deterministic everywhere. F32 is supported for primitives that require it, with conformance validated per-backend. vyre::ir::DataType re-exports this same type; conformance metadata should use this canonical contract path. Example: DataType::Vec4U32 records a four-word lane value and has a minimum byte width of 16.

Variants§

§

U32

Unsigned 32-bit integer. The fundamental GPU word.

§

I32

Signed 32-bit integer.

§

U64

Unsigned 64-bit integer, emulated as vec2<u32> with low and high words.

§

Vec2U32

Two-component u32 vector.

§

Vec4U32

Four-component u32 vector.

§

Bool

Boolean value stored as a GPU word.

§

Bytes

Variable-length byte buffer.

§

Array

Fixed-element-size array.

Each element is element_size bytes. The total byte count is N * element_size where N is encoded by the value.

Fields

§element_size: usize

Byte size of each element.

§

F16

Strict IEEE 754 binary16 floating-point.

§

BF16

Strict bfloat16 floating-point.

§

F32

IEEE 754 binary32 floating-point.

§

F64

Strict IEEE 754 binary64 floating-point.

§

Tensor

Multi-dimensional tensor value.

Implementations§

Source§

impl DataType

Source

pub const fn min_bytes(&self) -> usize

Minimum byte count to represent one value of this type.

Source

pub const fn max_bytes(&self) -> Option<usize>

Maximum byte count for one value of this type.

Returns None for truly unbounded types; currently all variants have a hard ceiling. Fixed-width types return Some(min_bytes()).

Source

pub const fn element_size(&self) -> Option<usize>

Element size for array-typed outputs, or None for scalar types.

Source

pub const fn is_float_family(&self) -> bool

Whether this type belongs to the strict floating-point conformance family.

Trait Implementations§

Source§

impl Clone for DataType

Source§

fn clone(&self) -> DataType

Returns a duplicate of the value. Read more
1.0.0 · Source§

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

Performs copy-assignment from source. Read more
Source§

impl Debug for DataType

Source§

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

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

impl<'de> Deserialize<'de> for DataType

Source§

fn deserialize<__D>(__deserializer: __D) -> Result<Self, __D::Error>
where __D: Deserializer<'de>,

Deserialize this value from the given Serde deserializer. Read more
Source§

impl Display for DataType

Source§

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

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

impl Hash for DataType

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 PartialEq for DataType

Source§

fn eq(&self, other: &DataType) -> bool

Tests for self and other values to be equal, and is used by ==.
1.0.0 · Source§

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

Tests for !=. The default implementation is almost always sufficient, and should not be overridden without very good reason.
Source§

impl Serialize for DataType

Source§

fn serialize<__S>(&self, __serializer: __S) -> Result<__S::Ok, __S::Error>
where __S: Serializer,

Serialize this value into the given Serde serializer. Read more
Source§

impl Copy for DataType

Source§

impl Eq for DataType

Source§

impl StructuralPartialEq for DataType

Auto Trait Implementations§

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<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> 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> 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> DeserializeOwned for T
where T: for<'de> Deserialize<'de>,