pub enum MetadataTensorRef<'a> {
I32(&'a Tensor<i32>),
Bool(&'a Tensor<u8>),
}Expand description
Erased immutable metadata tensor reference.
The contract is intentionally narrow and only admits integer metadata and
logical bool metadata. The bool handle is currently backed by u8
storage, but that is a provisional implementation detail.
§Examples
ⓘ
use tenferro_device::LogicalMemorySpace;
use tenferro_prims::{MetadataDType, MetadataTensorRef};
use tenferro_tensor::{MemoryOrder, Tensor};
let tensor = Tensor::<i32>::zeros(
&[2, 2],
LogicalMemorySpace::MainMemory,
MemoryOrder::ColumnMajor,
);
let metadata = MetadataTensorRef::I32(&tensor);
assert_eq!(metadata.dtype(), MetadataDType::I32);Variants§
I32(&'a Tensor<i32>)
A metadata tensor stored as i32.
Bool(&'a Tensor<u8>)
A logical bool/mask metadata tensor backed by u8 for now.
Implementations§
Source§impl<'a> MetadataTensorRef<'a>
impl<'a> MetadataTensorRef<'a>
Sourcepub const fn dtype(&self) -> MetadataDType
pub const fn dtype(&self) -> MetadataDType
Return the logical dtype carried by this metadata tensor reference.
§Examples
ⓘ
use tenferro_device::LogicalMemorySpace;
use tenferro_prims::{MetadataDType, MetadataTensorRef};
use tenferro_tensor::{MemoryOrder, Tensor};
let tensor = Tensor::<u8>::zeros(
&[1],
LogicalMemorySpace::MainMemory,
MemoryOrder::ColumnMajor,
);
let metadata = MetadataTensorRef::Bool(&tensor);
assert_eq!(metadata.dtype(), MetadataDType::Bool);Trait Implementations§
Source§impl<'a> Clone for MetadataTensorRef<'a>
impl<'a> Clone for MetadataTensorRef<'a>
Source§fn clone(&self) -> MetadataTensorRef<'a>
fn clone(&self) -> MetadataTensorRef<'a>
Returns a duplicate 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<'a> Debug for MetadataTensorRef<'a>
impl<'a> Debug for MetadataTensorRef<'a>
impl<'a> Copy for MetadataTensorRef<'a>
Auto Trait Implementations§
impl<'a> Freeze for MetadataTensorRef<'a>
impl<'a> !RefUnwindSafe for MetadataTensorRef<'a>
impl<'a> Send for MetadataTensorRef<'a>
impl<'a> Sync for MetadataTensorRef<'a>
impl<'a> Unpin for MetadataTensorRef<'a>
impl<'a> !UnwindSafe for MetadataTensorRef<'a>
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,
§impl<T> DistributionExt for Twhere
T: ?Sized,
impl<T> DistributionExt for Twhere
T: ?Sized,
fn rand<T>(&self, rng: &mut (impl Rng + ?Sized)) -> Twhere
Self: Distribution<T>,
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>
Converts
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>
Converts
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