pub struct InputSignatureEntry { /* private fields */ }Expand description
Value-free metadata signature for a tensor input.
§Examples
use tenferro_runtime::{DType, InputSignatureEntry, LayoutClass};
use tenferro_tensor::Placement;
let entry = InputSignatureEntry::new(
DType::F64,
[2_usize].into_iter().collect(),
Placement::default(),
LayoutClass::new("tenferro.layout.strided")?,
[1_isize].into_iter().collect(),
Some(3),
)?;
assert_eq!(entry.dtype(), DType::F64);Implementations§
Source§impl InputSignatureEntry
impl InputSignatureEntry
Sourcepub fn new(
dtype: DType,
shape: ShapeVec,
placement: Placement,
layout_class: LayoutClass,
strides: StrideVec,
alignment_log2: Option<u8>,
) -> Result<Self, InputSignatureError>
pub fn new( dtype: DType, shape: ShapeVec, placement: Placement, layout_class: LayoutClass, strides: StrideVec, alignment_log2: Option<u8>, ) -> Result<Self, InputSignatureError>
Build one value-free input signature entry.
§Examples
use tenferro_runtime::{DType, InputSignatureEntry, LayoutClass};
use tenferro_tensor::Placement;
let entry = InputSignatureEntry::new(
DType::I32,
[4_usize].into_iter().collect(),
Placement::default(),
LayoutClass::new("tenferro.layout.compact")?,
[1_isize].into_iter().collect(),
None,
)?;
assert_eq!(entry.shape(), &[4]);§Errors
Returns InputSignatureError::ShapeStrideRankMismatch when shape and
stride ranks differ, or InputSignatureError::InvalidAlignmentClass
when alignment_log2 is outside the finite usize alignment lattice.
Sourcepub fn dtype(&self) -> DType
pub fn dtype(&self) -> DType
Return the dtype component.
§Examples
use tenferro_runtime::{DType, InputSignatureEntry, LayoutClass};
use tenferro_tensor::Placement;
let entry = InputSignatureEntry::new(
DType::Bool,
[1_usize].into_iter().collect(),
Placement::default(),
LayoutClass::new("tenferro.layout.strided")?,
[1_isize].into_iter().collect(),
None,
)?;
assert_eq!(entry.dtype(), DType::Bool);Sourcepub fn shape(&self) -> &[usize]
pub fn shape(&self) -> &[usize]
Return the shape component.
§Examples
use tenferro_runtime::{DType, InputSignatureEntry, LayoutClass};
use tenferro_tensor::Placement;
let entry = InputSignatureEntry::new(
DType::F64,
[2_usize, 3].into_iter().collect(),
Placement::default(),
LayoutClass::new("tenferro.layout.strided")?,
[1_isize, 2].into_iter().collect(),
None,
)?;
assert_eq!(entry.shape(), &[2, 3]);Sourcepub fn placement(&self) -> &Placement
pub fn placement(&self) -> &Placement
Return the placement metadata component.
§Examples
use tenferro_runtime::{DType, InputSignatureEntry, LayoutClass};
use tenferro_tensor::{MemoryKind, Placement};
let entry = InputSignatureEntry::new(
DType::F64,
[1_usize].into_iter().collect(),
Placement::default(),
LayoutClass::new("tenferro.layout.strided")?,
[1_isize].into_iter().collect(),
None,
)?;
assert_eq!(entry.placement().memory_kind, MemoryKind::UnpinnedHost);Sourcepub fn layout_class(&self) -> &LayoutClass
pub fn layout_class(&self) -> &LayoutClass
Return the layout class component.
§Examples
use tenferro_runtime::{DType, InputSignatureEntry, LayoutClass};
use tenferro_tensor::Placement;
let layout = LayoutClass::new("tenferro.layout.strided")?;
let entry = InputSignatureEntry::new(
DType::F64,
[1_usize].into_iter().collect(),
Placement::default(),
layout.clone(),
[1_isize].into_iter().collect(),
None,
)?;
assert_eq!(entry.layout_class(), &layout);Sourcepub fn strides(&self) -> &[isize]
pub fn strides(&self) -> &[isize]
Return the stride metadata component.
§Examples
use tenferro_runtime::{DType, InputSignatureEntry, LayoutClass};
use tenferro_tensor::Placement;
let entry = InputSignatureEntry::new(
DType::F64,
[2_usize].into_iter().collect(),
Placement::default(),
LayoutClass::new("tenferro.layout.strided")?,
[2_isize].into_iter().collect(),
None,
)?;
assert_eq!(entry.strides(), &[2]);Sourcepub fn alignment_log2(&self) -> Option<u8>
pub fn alignment_log2(&self) -> Option<u8>
Return the known alignment class, if available.
§Examples
use tenferro_runtime::{DType, InputSignatureEntry, LayoutClass};
use tenferro_tensor::Placement;
let entry = InputSignatureEntry::new(
DType::F64,
[1_usize].into_iter().collect(),
Placement::default(),
LayoutClass::new("tenferro.layout.strided")?,
[1_isize].into_iter().collect(),
Some(3),
)?;
assert_eq!(entry.alignment_log2(), Some(3));Trait Implementations§
Source§impl Clone for InputSignatureEntry
impl Clone for InputSignatureEntry
Source§fn clone(&self) -> InputSignatureEntry
fn clone(&self) -> InputSignatureEntry
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 moreSource§impl Debug for InputSignatureEntry
impl Debug for InputSignatureEntry
Source§impl Hash for InputSignatureEntry
impl Hash for InputSignatureEntry
Source§impl PartialEq for InputSignatureEntry
impl PartialEq for InputSignatureEntry
Source§fn eq(&self, other: &InputSignatureEntry) -> bool
fn eq(&self, other: &InputSignatureEntry) -> bool
Tests for
self and other values to be equal, and is used by ==.impl Eq for InputSignatureEntry
impl StructuralPartialEq for InputSignatureEntry
Auto Trait Implementations§
impl Freeze for InputSignatureEntry
impl RefUnwindSafe for InputSignatureEntry
impl Send for InputSignatureEntry
impl Sync for InputSignatureEntry
impl Unpin for InputSignatureEntry
impl UnsafeUnpin for InputSignatureEntry
impl UnwindSafe for InputSignatureEntry
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<Q, K> Equivalent<K> for Q
impl<Q, K> Equivalent<K> for Q
§fn equivalent(&self, key: &K) -> bool
fn equivalent(&self, key: &K) -> bool
Compare self to
key and return true if they are equal.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