pub trait LayoutRuntime:
Debug
+ Send
+ Sync
+ 'static {
// Required method
fn prepare(
&self,
request: LayoutPrepareRequest<'_>,
) -> Result<PrepareCapability, PrepareError>;
// Provided method
fn folds_metadata_views(&self) -> bool { ... }
}Expand description
Direct runtime provider for layout core operations.
Required Methods§
Sourcefn prepare(
&self,
request: LayoutPrepareRequest<'_>,
) -> Result<PrepareCapability, PrepareError>
fn prepare( &self, request: LayoutPrepareRequest<'_>, ) -> Result<PrepareCapability, PrepareError>
Provided Methods§
Sourcefn folds_metadata_views(&self) -> bool
fn folds_metadata_views(&self) -> bool
Whether this engine’s *_read entries consume a strided view in place,
so a metadata-only operation (transpose, reshape, broadcast, slice)
with one reading consumer may become that consumer’s input view at
preparation instead of running as its own command (#2226).
The default is false: an engine whose read entries reject or stage a
view keeps every metadata operation as a materializing command, and its
schedule is unchanged.
§Examples
use tenferro_cpu::CpuEngine;
// The CPU engine reads views in place for every operation family.
let registration = tenferro_cpu::runtime_engine_registration(&CpuEngine::serial())?;
let layout = registration.capabilities().layout().unwrap();
assert!(layout.folds_metadata_views());Dyn Compatibility§
This trait is dyn compatible.
In older versions of Rust, dyn compatibility was called "object safety".