pub struct InputSpecializationRequirements { /* private fields */ }Expand description
Per-input specialization requirements.
§Examples
use tenferro_runtime::InputSpecializationRequirements;
let requirements = InputSpecializationRequirements::builder().build()?;
assert!(!requirements.specializes_dtype());Implementations§
Source§impl InputSpecializationRequirements
impl InputSpecializationRequirements
Sourcepub fn builder() -> InputSpecializationRequirementsBuilder
pub fn builder() -> InputSpecializationRequirementsBuilder
Return a new requirements builder.
§Examples
use tenferro_runtime::InputSpecializationRequirements;
let mut builder = InputSpecializationRequirements::builder();
builder.dtype(true);
assert!(builder.build()?.specializes_dtype());Sourcepub fn specializes_dtype(&self) -> bool
pub fn specializes_dtype(&self) -> bool
Return whether dtype is specialized.
§Examples
use tenferro_runtime::InputSpecializationRequirements;
let mut builder = InputSpecializationRequirements::builder();
builder.dtype(true);
assert!(builder.build()?.specializes_dtype());Sourcepub fn specializes_rank(&self) -> bool
pub fn specializes_rank(&self) -> bool
Return whether rank is specialized.
§Examples
use tenferro_runtime::InputSpecializationRequirements;
let mut builder = InputSpecializationRequirements::builder();
builder.rank(true);
assert!(builder.build()?.specializes_rank());Sourcepub fn concrete_dimensions(&self) -> &[u32]
pub fn concrete_dimensions(&self) -> &[u32]
Return concrete-dimension axes.
§Examples
use tenferro_runtime::InputSpecializationRequirements;
let mut builder = InputSpecializationRequirements::builder();
builder.rank(true).concrete_dimensions(vec![1]);
assert_eq!(builder.build()?.concrete_dimensions(), &[1]);Sourcepub fn placement(&self) -> PlacementSpecialization
pub fn placement(&self) -> PlacementSpecialization
Return the placement specialization mode.
§Examples
use tenferro_runtime::{InputSpecializationRequirements, PlacementSpecialization};
let mut builder = InputSpecializationRequirements::builder();
builder.placement(PlacementSpecialization::Device);
assert_eq!(builder.build()?.placement(), PlacementSpecialization::Device);Sourcepub fn layout(&self) -> LayoutSpecialization
pub fn layout(&self) -> LayoutSpecialization
Return the layout specialization mode.
§Examples
use tenferro_runtime::{InputSpecializationRequirements, LayoutSpecialization};
let mut builder = InputSpecializationRequirements::builder();
builder.layout(LayoutSpecialization::Class);
assert_eq!(builder.build()?.layout(), LayoutSpecialization::Class);Sourcepub fn alignment_log2(&self) -> Option<u8>
pub fn alignment_log2(&self) -> Option<u8>
Return the required alignment class, if any.
§Examples
use tenferro_runtime::InputSpecializationRequirements;
let mut builder = InputSpecializationRequirements::builder();
builder.alignment_log2(Some(2));
assert_eq!(builder.build()?.alignment_log2(), Some(2));Trait Implementations§
impl Eq for InputSpecializationRequirements
impl StructuralPartialEq for InputSpecializationRequirements
Auto Trait Implementations§
impl Freeze for InputSpecializationRequirements
impl RefUnwindSafe for InputSpecializationRequirements
impl Send for InputSpecializationRequirements
impl Sync for InputSpecializationRequirements
impl Unpin for InputSpecializationRequirements
impl UnsafeUnpin for InputSpecializationRequirements
impl UnwindSafe for InputSpecializationRequirements
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