#[repr(C)]pub struct DLDataType {
pub code: u8,
pub bits: u8,
pub lanes: u16,
}Expand description
\brief The data type the tensor can hold. The data type is assumed to follow the native endian-ness. An explicit error message should be raised when attempting to export an array with non-native endianness
Examples
- float: type_code = 2, bits = 32, lanes = 1
- float4(vectorized 4 float): type_code = 2, bits = 32, lanes = 4
- int8: type_code = 0, bits = 8, lanes = 1
- std::complex
: type_code = 5, bits = 64, lanes = 1 - bool: type_code = 6, bits = 8, lanes = 1 (as per common array library convention, the underlying storage size of bool is 8 bits)
- float8_e4m3: type_code = 8, bits = 8, lanes = 1 (packed in memory)
- float6_e3m2fn: type_code = 16, bits = 6, lanes = 1 (packed in memory)
- float4_e2m1fn: type_code = 17, bits = 4, lanes = 1 (packed in memory)
When a sub-byte type is packed, DLPack requires the data to be in little bit-endian, i.e., for a packed data set D ((D >> (i * bits)) && bit_mask) stores the i-th element.
Fields§
§code: u8\brief Type code of base types. We keep it uint8_t instead of DLDataTypeCode for minimal memory footprint, but the value should be one of DLDataTypeCode enum values.
bits: u8\brief Number of bits, common choices are 8, 16, 32.
lanes: u16\brief Number of lanes in the type, used for vector types.
Trait Implementations§
Source§impl Clone for DLDataType
impl Clone for DLDataType
Source§fn clone(&self) -> DLDataType
fn clone(&self) -> DLDataType
Returns a duplicate of the value. Read more
1.0.0 (const: unstable) · Source§fn clone_from(&mut self, source: &Self)
fn clone_from(&mut self, source: &Self)
Performs copy-assignment from
source. Read moreimpl Copy for DLDataType
Auto Trait Implementations§
impl Freeze for DLDataType
impl RefUnwindSafe for DLDataType
impl Send for DLDataType
impl Sync for DLDataType
impl Unpin for DLDataType
impl UnsafeUnpin for DLDataType
impl UnwindSafe for DLDataType
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