Skip to main content

CpuLayoutTransformProvider

Trait CpuLayoutTransformProvider 

Source
pub trait CpuLayoutTransformProvider:
    Debug
    + Send
    + Sync
    + 'static {
    // Required methods
    fn execution_capabilities(&self) -> CpuProviderExecutionCapabilities;
    fn materialize(
        &self,
        context: &CpuExecutionContext<'_>,
        request: CpuLayoutTransformRequest<'_, '_, '_>,
    ) -> Result<CpuProviderOutcome>;

    // Provided method
    fn uninit_provider(&self) -> Option<&dyn CpuUninitLayoutTransformProvider> { ... }
}
Expand description

Provider for engine-owned tensor materialization.

§Examples

use tenferro_cpu::provider::CpuLayoutTransformProvider;

Required Methods§

Source

fn execution_capabilities(&self) -> CpuProviderExecutionCapabilities

Return immutable count, placement, and fan-out capabilities.

A provider bundle samples this method exactly once during construction and uses the stored descriptor for all validation and dispatch.

Source

fn materialize( &self, context: &CpuExecutionContext<'_>, request: CpuLayoutTransformRequest<'_, '_, '_>, ) -> Result<CpuProviderOutcome>

Materialize one validated input into a preallocated output.

§Errors

Returns tenferro_tensor::Error::BackendSource or tenferro_tensor::Error::BackendFailure when execution fails. A detected inconsistency in engine-attested layout or range metadata is returned as tenferro_tensor::Error::Validation. Unsupported layouts use CpuProviderOutcome::Unsupported instead.

Provided Methods§

Source

fn uninit_provider(&self) -> Option<&dyn CpuUninitLayoutTransformProvider>

Return the structural full-overwrite witness for this provider.

Returns Some(self) only for types that implement CpuUninitLayoutTransformProvider via an unsafe impl, so a Some witness is structural proof that the provider asserted the full-overwrite destination contract. Defaults to None (opted out).

§Examples
use tenferro_cpu::provider::CpuLayoutTransformProvider;

Dyn Compatibility§

This trait is dyn compatible.

In older versions of Rust, dyn compatibility was called "object safety".

Implementors§