Skip to main content

ReusableExecutionTopologyRequest

Struct ReusableExecutionTopologyRequest 

Source
pub struct ReusableExecutionTopologyRequest<'a> { /* private fields */ }
Expand description

Lightweight provider view used to bind dynamic compute topology into a reusable program identity before catalog lookup.

It deliberately exposes no buffers, request identity, or submission authority. Providers may derive only an opaque fixed-size topology fingerprint from immutable plan semantics, typed reusable-address authority, and the current batch work shape.

Implementations§

Source§

impl<'a> ReusableExecutionTopologyRequest<'a>

Source

pub fn node_id(&self) -> &NodeId

Source

pub fn operation_id(&self) -> &OperationId

Source

pub fn attributes(&self) -> &BTreeMap<AttributeId, SemanticValue>

Source

pub fn bindings(&self) -> &[ResolvedValueBinding]

Source

pub fn work_shape(&self) -> &BatchWorkShape

Source

pub fn binding_uses_packed_batch_coordinates( &self, role: ResolvedValueRole, ordinal: u32, ) -> Result<bool, VNextError>

Returns whether one resolved value uses the packed token coordinates of the physical submission wave. Providers must use the same coordinate authority here that runtime invocation construction uses when selecting captured buffer regions.

Source

pub fn reusable_address_scope( &self, values: &[ReusableExecutionValueAddress], workspaces: &[ReusableExecutionWorkspaceAddress], ) -> Result<Option<DeviceReusableAddressScope>, VNextError>

Resolves one complete provider address contract. Every value binding must appear exactly once, preventing a provider from gaining replay by silently omitting a dynamic operand. Program-bound values are legal only when the resident executable captures a lane-stable binding slot.

Source

pub fn binding_reusable_address_scope( &self, role: ResolvedValueRole, ordinal: u32, ) -> Result<Option<DeviceReusableAddressScope>, VNextError>

Returns the reusable address authority shared by every physical component of one resolved value. None means at least one component is submission-scoped and the backend must exclude commands that capture it from resident reusable segments.

Source

pub fn scratch_reusable_address_scope( &self, ) -> Result<Option<DeviceReusableAddressScope>, VNextError>

Returns the address authority for scratch captured by the provider. None means the scratch address is scoped to this submission.

Source

pub fn binding_workspace_reusable_address_scope( &self, ) -> Result<Option<DeviceReusableAddressScope>, VNextError>

Returns the address authority for reusable-program binding workspace. None means the binding workspace address is scoped to this submission.

Source

pub fn persistent_workspace_reusable_address_scope( &self, ) -> Result<Option<DeviceReusableAddressScope>, VNextError>

Returns the address authority for persistent workspace captured by the provider. None means the address is scoped to this submission.

Auto Trait Implementations§

Blanket Implementations§

Source§

impl<T> Any for T
where T: 'static + ?Sized,

Source§

fn type_id(&self) -> TypeId

Gets the TypeId of self. Read more
Source§

impl<T> Borrow<T> for T
where T: ?Sized,

Source§

fn borrow(&self) -> &T

Immutably borrows from an owned value. Read more
Source§

impl<T> BorrowMut<T> for T
where T: ?Sized,

Source§

fn borrow_mut(&mut self) -> &mut T

Mutably borrows from an owned value. Read more
Source§

impl<T> From<T> for T

Source§

fn from(t: T) -> T

Returns the argument unchanged.

Source§

impl<T, U> Into<U> for T
where U: From<T>,

Source§

fn into(self) -> U

Calls U::from(self).

That is, this conversion is whatever the implementation of From<T> for U chooses to do.

Source§

impl<T> Same for T

Source§

type Output = T

Should always be Self
Source§

impl<T, U> TryFrom<U> for T
where U: Into<T>,

Source§

type Error = !

The type returned in the event of a conversion error.
Source§

fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>

Performs the conversion.
Source§

impl<T, U> TryInto<U> for T
where U: TryFrom<T>,

Source§

type Error = <U as TryFrom<T>>::Error

The type returned in the event of a conversion error.
Source§

fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>

Performs the conversion.
Source§

impl<V, T> VZip<V> for T
where V: MultiLane<T>,

Source§

fn vzip(self) -> V