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>
impl<'a> ReusableExecutionTopologyRequest<'a>
pub fn node_id(&self) -> &NodeId
pub fn operation_id(&self) -> &OperationId
pub fn attributes(&self) -> &BTreeMap<AttributeId, SemanticValue>
pub fn bindings(&self) -> &[ResolvedValueBinding]
pub fn work_shape(&self) -> &BatchWorkShape
Sourcepub fn binding_uses_packed_batch_coordinates(
&self,
role: ResolvedValueRole,
ordinal: u32,
) -> Result<bool, VNextError>
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.
Sourcepub fn reusable_address_scope(
&self,
values: &[ReusableExecutionValueAddress],
workspaces: &[ReusableExecutionWorkspaceAddress],
) -> Result<Option<DeviceReusableAddressScope>, VNextError>
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.
Sourcepub fn binding_reusable_address_scope(
&self,
role: ResolvedValueRole,
ordinal: u32,
) -> Result<Option<DeviceReusableAddressScope>, VNextError>
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.
Sourcepub fn scratch_reusable_address_scope(
&self,
) -> Result<Option<DeviceReusableAddressScope>, VNextError>
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.
Sourcepub fn binding_workspace_reusable_address_scope(
&self,
) -> Result<Option<DeviceReusableAddressScope>, VNextError>
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.
Sourcepub fn persistent_workspace_reusable_address_scope(
&self,
) -> Result<Option<DeviceReusableAddressScope>, VNextError>
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.